📅  最后修改于: 2023-12-03 14:40:15.446000             🧑  作者: Mango
在编写应用程序时,通常需要使用SQL查询数据库。时间戳是一个常用的数据类型,用于记录事件发生的时间和日期。本教程将展示如何在Go编程语言中使用SQL查询创建时间戳。
在开始之前,确保已经在计算机上安装了Go和MySQL。如果没有,请先安装。
安装MySQL驱动程序:
go get -u github.com/go-sql-driver/mysql
接下来,需要创建一个数据库和一个包含时间戳字段的表。
CREATE TABLE orders (
id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
要查询时间戳,需要使用SQL SELECT语句。以下代码显示如何在Go程序中执行SQL查询:
package main
import (
"database/sql"
"fmt"
"log"
_ "github.com/go-sql-driver/mysql"
)
type Order struct {
ID int
CreatedAt string
}
func main() {
db, err := sql.Open("mysql", "username:password@tcp(127.0.0.1:3306)/database_name")
if err != nil {
log.Fatal(err)
}
defer db.Close()
rows, err := db.Query("SELECT id, created_at FROM orders")
if err != nil {
log.Fatal(err)
}
defer rows.Close()
orders := []Order{}
for rows.Next() {
order := Order{}
err := rows.Scan(&order.ID, &order.CreatedAt)
if err != nil {
log.Fatal(err)
}
orders = append(orders, order)
}
fmt.Println(orders)
}
这将输出以下内容:
[{1 2021-09-23 10:31:22}]
要根据时间戳进行过滤,可以使用SQL WHERE子句。以下代码过滤出今天创建的订单:
package main
import (
"database/sql"
"fmt"
"log"
"time"
_ "github.com/go-sql-driver/mysql"
)
type Order struct {
ID int
CreatedAt string
}
func main() {
db, err := sql.Open("mysql", "username:password@tcp(127.0.0.1:3306)/database_name")
if err != nil {
log.Fatal(err)
}
defer db.Close()
today := time.Now().Format("2006-01-02")
rows, err := db.Query("SELECT id, created_at FROM orders WHERE DATE(created_at) = ?", today)
if err != nil {
log.Fatal(err)
}
defer rows.Close()
orders := []Order{}
for rows.Next() {
order := Order{}
err := rows.Scan(&order.ID, &order.CreatedAt)
if err != nil {
log.Fatal(err)
}
orders = append(orders, order)
}
fmt.Println(orders)
}
这将输出今天创建的订单。注意,此处使用了Go的time包来获取今天的日期。
在Go编程语言中使用SQL查询创建时间戳非常简单。通过在SELECT语句中包括时间戳字段,并在WHERE子句中使用DATE函数,可以方便地过滤数据。使用Go的time包可以轻松地获取当前日期和时间,使时间戳操作更加灵活。