我正在尝试获取当前日期 - 6 天。这很容易。
现在我正在尝试获取当前日期 - 6 天 + 12:01 AM。
如果今天是 2012 年 2 月 3 日上午 11:14。
我想获取 2-25-2012 12:01 AM
这 2 个选择将为我提供当前日期 - 6,但不会将时间重置为 12:01 AM
- 选择 getdate()-6
- SELECT DATEADD(天, -6, CURRENT_TIMESTAMP);
最佳答案
SELECT DATEADD(minute, 1, DATEADD(DAY, DATEDIFF(DAY, 0, GETDATE()) - 6, 0))
相当于
SELECT DATEADD(minute, 1, DATEADD(DAY, DATEDIFF(DAY, '19000101', GETDATE()) - 6, '19000101'))
我想您会发现这个选项比 varchar 实现更快、更灵活。通过保持数据类型不变,您不必担心转换/转换结果的变化无常。
请参阅路易斯·戴维森 (Louis Davidson) 以获取完整的解释之一: http://sqlblog.com/blogs/louis_davidson/archive/2011/02/09/some-date-math-fun.aspx
关于sql - TSQl:选择当前日期 - 6 天并将时间设置为 12:01 AM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9536623/