问题描述
SQL Server中如何只返回日期数据类型的日期部分(Date)?
比如,我们查询如下SQL语句:
SELECT GETDATE()
返回的结果是形如: 2008-09-22 15:24:13.790
如果只需要日期部分呢,比如期望的返回结果为: 2008-09-22
方式一
在SQL Server 2008+ 中,可以使用 CONVERT 关键字:
SELECT CONVERT(date, getdate())
在SQL Server 2008以下版本中,实现方式如下:
SELECT DATEADD(dd, 0, DATEDIFF(dd, 0, @your_date))
比如:
SELECT DATEADD(dd, 0, DATEDIFF(dd, 0, GETDATE()))
返回的结果为:2008-09-22 00:00:00.000
方式二
在SQL Server 2008+ 中,可以使用 CAST 关键字:
select cast(getdate() as date)
方式三
SELECT CONVERT(VARCHAR(10),GETDATE(),111)
方式四
SELECT CONVERT(datetime, CONVERT(varchar, GETDATE(), 101))
方式五
SELECT CAST(FLOOR(CAST(GETDATE() AS FLOAT)) AS DATETIME)
方式六
在SQL Server 2012+ 中,可以使用 FORMAT 关键字:
SELECT FORMAT(GETDATE(), 'yyyy-MM-dd')
版权声明:本作品系原创,版权归码友网所有,如未经许可,禁止任何形式转载,违者必究。
发表评论
登录用户才能发表评论, 请 登 录 或者 注册