当我选择日期在SQL返回为2011-02-25 21:17:33.933。但我只需要日期部分,即2011-02-25。我该怎么做呢?


当前回答

我将创建一个标量函数,并使用format()设置希望看到的数据类型。它必须便于以后的维护。

其他回答

最快的是date ediff。

select dateadd(d, datediff(d,0, [datecolumn]), 0), other..
from tbl

但是如果你只需要使用这个值,那么你可以跳过dateadd,例如。

select ...
WHERE somedate <= datediff(d, 0, getdate())

表达式datediff(d, 0, getdate())足以返回今天的日期而不包含时间部分。

在PLSQL中可以使用

to_char(SYSDATE,'dd/mm/yyyy')

试试这个。

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

首先将日期转换为浮点数(这将显示数字),然后将数字舍入为0小数点,然后将其转换为datetime。

convert(datetime,round(convert(float,orderdate,101),0) ,101)

我会使用DATEFROMPARTS函数。这很简单,你不需要选角。以这个查询为例:

Select  DATEFROMPARTS(YEAR(GETDATE()), MONTH(GETDATE()), DAY(GETDATE())) as myNewDate

将返回

2021-01-21

好的部分是你也可以创建你自己的日期,例如你想要一个月的第一天作为日期,那么你可以像下面这样使用:

Select  DATEFROMPARTS(YEAR(GETDATE()), MONTH(GETDATE()), 1) as myNewDate

结果将是:

2021-01-01