【发布时间】:2020-11-17 13:10:15
【问题描述】:
我正在尝试在 cockroach DB 选择查询中将时间戳值格式化为 yyyymmdd。
在 MySQL 中,我们可以使用 DATE_FORMAT() 格式化日期
例如SELECT DATE_FORMAT(created_at, "%Y-%m-%d") FROM users 将结果提取为所需的格式。
我们可以在蟑螂数据库中使用DATE_FORMAT() 的替代品吗?
【问题讨论】:
我正在尝试在 cockroach DB 选择查询中将时间戳值格式化为 yyyymmdd。
在 MySQL 中,我们可以使用 DATE_FORMAT() 格式化日期
例如SELECT DATE_FORMAT(created_at, "%Y-%m-%d") FROM users 将结果提取为所需的格式。
我们可以在蟑螂数据库中使用DATE_FORMAT() 的替代品吗?
【问题讨论】:
您可以使用实验性内置 experimental_strftime,它使用 strftime 语法。
SELECT experimental_strftime(created_at, '%Y-%m-%d') FROM users
或者,您可以使用experimental_strptime,它使用strptime 语法。
请花时间阅读有关experimental features 的重要说明。时间格式化内置函数是实验性的,因为它们在不同平台上的行为不同。
【讨论】:
我正在使用 golang、gorm 和 cockroachdb。我试过experimental_strftime。但它会创建无效的查询。
query := `SELECT experimental_strftime(created_at, '%Y-%m-%d') FROM users`
var version []string
rows, err := store.DB.Raw(query).Rows()
if err != nil {
return version, err
}
defer rows.Close()
for rows.Next() {
err := rows.Scan(&version)
return version, err
}
在调试模式下生成的查询是
SELECT experimental_strftime(created_at, '%!Y(MISSING)-%!m(MISSING)-%!d(MISSING)') FROM users
【讨论】: