如何选择日期没有时间在SQL

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

863639 次浏览

最快的是datediff

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

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

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

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

我猜他想要根绳子。

select convert(varchar(10), '2011-02-25 21:17:33.933', 120)

这里的120告诉转换函数,我们在下面的格式: yyyy-mm-dd hh:mi:ss中传递输入日期。

你可以这样用

SELECT Convert(varchar(10), GETDATE(),120)

有点晚了,但是可以使用ODBC的“curdate”函数(尖括号中的“fn”是ODBC函数转义序列)。

SELECT {fn curdate()}

输出:2013-02-01

在PLSQL中可以使用

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

使用CAST(GETDATE() As Date)对我有用

对于2008年旧版:

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

使用很简单:

convert(date, Btch_Time)

在下面的例子:

表:

Efft_d       Loan_I  Loan_Purp_Type_C   Orig_LTV    Curr_LTV    Schd_LTV    Un_drwn_Bal_a      Btch_Time            Strm_I  Btch_Ins_I
2014-05-31  200312500   HL03             NULL         1.0000    1.0000         1.0000      2014-06-17 11:10:57.330  1005    24851e0a-53983699-14b4-69109


Select * from helios.dbo.CBA_SRD_Loan where Loan_I in ('200312500') and convert(date, Btch_Time) = '2014-06-17'

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

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

如果你想返回一个日期类型只是一个日期使用

CONVERT(date, SYSDATETIME())

SELECT CONVERT(date,SYSDATETIME())

DECLARE @DateOnly Datetime
SET @DateOnly=CONVERT(date,SYSDATETIME())

试试这个。

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

你也可以试试这个。

SELECT CONVERT(DATE, GETDATE(), 120)

在转换为日期后将其转换回datetime,以便在需要时保持相同的datatime

select Convert(datetime, Convert(date, getdate())  )

如果你需要时间为0,比如2018-01-17 00:00:00.000:

SELECT CONVERT(DATETIME, CONVERT(DATE, GETDATE()), 121)

虽然已经太晚了,但我还是坚持了下来

declare @vCurrentDate date=getutcdate()


select @vCurrentDate

当数据类型为date时,小时将被截断

select DATE(字段)

字段值:2020-12-15 12:19:00

选择值:2020-12-15

我将使用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

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