【发布时间】:2021-10-11 21:32:53
【问题描述】:
我正在尝试从 tmp 表中查询 PurchaseDate 日期时间列以及自定义列 PurchaseDate 列,时间为 00:00:00 / 午夜:
| PurchaseDate | StartOfDay |
|---|---|
| 1996-07-16 20:00:00 | 1996-07-16 00:00:00 |
| 1996-07-10 21:19:00 | 1996-07-10 00:00:00 |
| 1996-07-12 22:18:00 | 1996-07-12 00:00:00 |
我无法使用DATEDIFF() 做到这一点。我怎样才能以最简单的方式做到这一点?
按照建议,我已尝试使用date()。但是,这会将列类型转换为日期,我想将其保留为日期时间。
【问题讨论】:
-
select purchaseDate, date(purchaseDate) startOfDay from mytable -
@Bohemian ♦ 将列类型转换为日期。我想将该字段保留为日期时间。
-
将列类型转换为日期。 ???不会。这会将获得的列的 value 转换为 DATE 数据类型,从而将时间部分归零。表中的列保持不变。
-
我无法使用 DATEDIFF() 来做到这一点。* 你为什么这么认为?
DATEDIFF()切断两个操作数的时间部分,然后减去日期。 DATEDIFF() function: DATEDIFF() 返回 expr1 - expr2 表示为从一个日期到另一个日期的天数。 expr1 和 expr2 是日期或日期和时间表达式。 在计算中仅使用值的日期部分。 -
@Akina,对不起,我并不是说它将列类型转换为日期,但自定义列的最终结果显示为日期,而我需要日期时间格式。正如您对
datediff()所说,它仅使用日期部分,但我什至需要考虑时间部分,尽管它是00:00:00。但我现在已经使用了 Bohemian 的解决方案。感谢您的意见!