当我在SQL中选择日期时,它将返回2011-02-25 21:17:33.933
。但我只需要Date部分,即2011-02-25
。我怎么能这样做?
答案 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)
CAST(
FLOOR(
CAST( GETDATE() AS FLOAT )
)
AS DATETIME
)
http://www.bennadel.com/blog/122-Getting-Only-the-Date-Part-of-a-Date-Time-Stamp-in-SQL-Server.htm
答案 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