SELECT GETDATE()
返回时间:2008-09-22 15:24:13.790
我想要没有时间部分的日期部分:2008-09-22 00:00:00.000
我怎么能得到那个?
SELECT GETDATE()
返回时间:2008-09-22 15:24:13.790
我想要没有时间部分的日期部分:2008-09-22 00:00:00.000
我怎么能得到那个?
当前回答
我赞成以下未提及的内容:
DATEFROMPARTS(DATEPART(yyyy, @mydatetime), DATEPART(mm, @mydatetime), DATEPART(dd, @mydatetime))
它也不关心本地或进行双重转换——尽管每个“datepart”可能都做数学运算。因此,它可能比datediff方法慢一点,但对我来说,它更清晰。尤其是当我想按年份和月份分组时(将日期设置为1)。
其他回答
您可以使用下面的方法,仅用于日期的不同类型的输出
SELECT CONVERT(日期时间,转换(varchar,GETDATE(),103))-----dd/mm/yyyySELECT CONVERT(日期时间,转换(varchar,GETDATE(),101))------mm/dd/yyyySELECT CONVERT(日期时间,转换(varchar,GETDATE(),102))
您可以对日期部分和日期格式使用以下内容:
DATENAME=>返回表示指定日期的指定日期部分的字符串
DATEADD=>DATEPART()函数用于返回日期/时间的单个部分,例如年、月、日、小时、分钟等。
DATEPART=>返回表示指定日期的指定日期部分的整数。
CONVERT()=>CONVERT函数是将一种数据类型的表达式转换为另一种数据的通用函数。这个CONVERT()函数可用于以不同格式显示日期/时间数据。
以日期格式返回
CAST(订单日期AS日期)
以上代码将在sqlserver2010中运行
它将于2013年12月12日回归
对于SQL Server 2012,请使用以下代码
CONVERT(VARCHAR(10), OrderDate , 111)
Convert(nvarchar(10), getdate(), 101) ---> 5/12/14
Convert(nvarchar(12), getdate(), 101) ---> 5/12/2014
SELECT DATEADD(DD, DATEDIFF(DD, 0, GETDATE()), 0)
SELECT DATEADD(DAY, 0, DATEDIFF(DAY,0, GETDATE()))
SELECT CONVERT(DATETIME, CONVERT(VARCHAR(10), GETDATE(), 101))
编辑:前两个方法基本相同,out执行转换为varchar方法。