【问题标题】:Select a date without time (SQL Server (+) [duplicate]选择没有时间的日期(SQL Server(+)[重复]
【发布时间】:2016-07-18 04:11:49
【问题描述】:

我想检索一个负 1 年的日期,但没有时间符号。

以下查询

SELECT DATEADD(year, -1, GETDATE())

输出:

2015-03-30 10:48:04.220

我想要的是2015-03-30 00:00:00:000

类似于:

(DATEADD(dd, DATEDIFF(dd, 0, GETDATE()), 0))

结果:2016-03-30 00:00:00.000

正确或最简单的方法是什么?

【问题讨论】:

  • 为什么不使用 CAST(field AS DATE)?
  • “我想要的是2015-03-30 00:00:00:000”。奇怪,但它看起来包括对午夜的相当精确的表示。你想要一天中的时间还是只是一个date

标签: sql-server tsql dateadd


【解决方案1】:

在 SQL Server 2008 及更高版本上,您应该转换为日期:

SELECT CONVERT(date, (DATEADD(year, -1, GETDATE())))

在旧版本上,您可以执行以下操作:

SELECT DATEADD(dd, 0, DATEDIFF(dd, 0, DATEADD(year, -1, GETDATE())))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-12-10
    • 1970-01-01
    • 1970-01-01
    • 2013-08-25
    • 2014-08-09
    • 1970-01-01
    • 2011-07-04
    • 2014-09-05
    相关资源
    最近更新 更多