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

时间:2011-02-26 07:17:04

标签: sql sql-server sql-server-2005

当我在SQL中选择日期时,它将返回2011-02-25 21:17:33.933。但我只需要Date部分,即2011-02-25。我怎么能这样做?

19 个答案:

答案 0 :(得分:454)

对于SQL Server 2008:

Convert(date, getdate())  

请参阅https://docs.microsoft.com/en-us/sql/t-sql/functions/getdate-transact-sql

答案 1 :(得分:134)

我猜他想要一个字符串

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

答案 2 :(得分:53)

最快的是datediff,例如

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

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

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

表达式datediff(d, 0, getdate())足以在没有时间部分的情况下返回今天的日期。

答案 3 :(得分:33)

使用适合我的CAST(GETDATE()作为日期),简单。

答案 4 :(得分:21)

答案 5 :(得分:12)

你可以像这样使用

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

答案 6 :(得分:10)

2008旧版

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

答案 7 :(得分:3)

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

答案 8 :(得分:2)

你也可以尝试这个。

SELECT CONVERT(DATE, GETDATE(), 120)

答案 9 :(得分:2)

如果您需要时间为零:

Rate

答案 10 :(得分:2)

有点晚了,但是使用ODBC“curdate”函数(angle brackes'fn'是ODBC函数转义序列)。

SELECT {fn curdate()} 

输出:2013-02-01

答案 11 :(得分:1)

使用很简单:

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'

答案 12 :(得分:1)

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

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

答案 13 :(得分:0)

在PLSQL中你可以使用

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

答案 14 :(得分:0)

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

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

答案 15 :(得分:0)

如果您想将日期类型仅作为日期使用

CONVERT(date, SYSDATETIME())

SELECT CONVERT(date,SYSDATETIME()) 

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

答案 16 :(得分:0)

试试这个。

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

答案 17 :(得分:0)

选择日期(&#39; 2011-02-25 21:17:33.933&#39;)作为日期将给我们2011-02-25。

为我工作。希望它有效。

答案 18 :(得分:0)

从表中选择DATE(字段);

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

选择值:2020-12-15