需要从日期时间只有日期(Need only Date from DateTime)

2019-09-18 17:16发布

我在SQL DateTime类型的变量。 只需要有它的日期部分。

请帮忙?

Answer 1:

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

其结果是:“2009-07-14 00:00:00.000”

编辑 :猜下一个变型是比较常见的:

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

因为中day模式可以很容易地更改为weekmonth的图案。 这是非常有用当GROUP BY子句中应该GROUP BY月(报告)的一周。



Answer 2:

这已被提问和回答堆栈溢出之前。 事实上,它已经被问了个遍:

  1. 在MS SQL最有效的方式来获得日期+时间日期?
  2. 最好的方法来检查当前的日期在SQL查询的WHERE子句。
  3. SQL下降时间日期时间
  4. MS SQL仅日期不受时间
  5. 如何只从SQL Server datetime数据类型返回日期部分


Answer 3:

发现这个使用谷歌

SELECT CONVERT(DATETIME,FLOOR(CONVERT(FLOAT,GETDATE())))



Answer 4:

如果你只需要日期的VARCHAR表示,你可以使用转换函数,如

select convert(varchar, getDate(), 102) /* 2009.07.14 */

如果你需要一个日期时间(在指定日期午夜),你可以将其转换回。

select convert(datetime, convert(varchar, getDate(), 102), 102)


Answer 5:

-- Sneaky CAST/DATEDIFF trick strips off the time to get just the day (midnight)!
CAST(DATEDIFF(d,0,DateField) AS DATETIME) AS DayField


Answer 6:

SQL Server 2008中有一个日期数据类型,它的店刚日期,如果你是inthis版本​​,也许这将是一个更好datat类型供您使用。 虽然被警告,日期不完全一样的日期时间进行数据处理工作。



Answer 7:

SELECT DATEADD(day, DATEDIFF(day, '19900101', CURRENT_TIMESTAMP), '19900101')

一个非常有用的文章:“这篇文章的目的是解释时间类型在SQL Server中如何工作的,包括常见的陷阱和一般性建议。” 最终引导到datetime数据类型

请注意,转换为varchar和背面(转换(日期时间,转换(VARCHAR,GETDATE(),102),102))是慢得多。



Answer 8:

如果你想要的格式 'MM / DD / YY',使用 “CONVERT(VARCHAR,@datetimevalue,1)只显示日期。如果你需要它的日期时间格式,请使用” 转换(日期时间,CONVERT(VARCHAR,@datetimevalue ,1))”。

我创建了我的SQL博客有关如何检索和显示CONVERT(VARCHAR,..)函数的所有可能格式的条目:

http://jessesql.blogspot.com/2009/04/converting-datetime-values-to-varchar.html



Answer 9:

小贴士:如果你发现自己经常这样做,你可以创建一个包含您所选择的时间剥离逻辑标量用户定义的函数。

警告:SQL Server 2000中有一个涉及UDF的一些痛苦的错误ON条款。



Answer 10:

DATEPART(天,datetimevalue)



文章来源: Need only Date from DateTime