Nee*_*raj 243 sql sql-server sql-server-2005
当我在SQL中选择日期时,它将返回为 2011-02-25 21:17:33.933.但我只需要Date部分2011-02-25.我怎样才能做到这一点?
小智 491
对于SQL Server 2008:
Convert(date, getdate())
Run Code Online (Sandbox Code Playgroud)
请参考https://docs.microsoft.com/en-us/sql/t-sql/functions/getdate-transact-sql
ber*_*d_k 142
我想他想要一根绳子
select convert(varchar(10), '2011-02-25 21:17:33.933', 120)
Run Code Online (Sandbox Code Playgroud)
Ric*_*iwi 55
最快的是datediff,例如
select dateadd(d, datediff(d,0, [datecolumn]), 0), other..
from tbl
Run Code Online (Sandbox Code Playgroud)
但是如果你只需要使用该值,那么你可以跳过dateadd,例如
select ...
WHERE somedate <= datediff(d, 0, getdate())
Run Code Online (Sandbox Code Playgroud)
表达式datediff(d, 0, getdate())足以在没有时间部分的情况下返回今天的日期.
小智 37
使用适合我的CAST(GETDATE()作为日期),简单.
Orb*_*bit 21
CAST(
FLOOR(
CAST( GETDATE() AS FLOAT )
)
AS DATETIME
)
Run Code Online (Sandbox Code Playgroud)
http://www.bennadel.com/blog/122-Getting-Only-the-Date-Part-of-a-Date-Time-Stamp-in-SQL-Server.htm
A.G*_*tam 12
你可以这样使用
SELECT Convert(varchar(10), GETDATE(),120)
Run Code Online (Sandbox Code Playgroud)
我会使用DATEFROMPARTS函数。这非常简单,您不需要铸造。作为一个例子,这个查询:
Select DATEFROMPARTS(YEAR(GETDATE()), MONTH(GETDATE()), DAY(GETDATE())) as myNewDate
Run Code Online (Sandbox Code Playgroud)
将返回
2021-01-21
好的部分是,您还可以创建自己的日期,例如您想要一个月的第一天作为日期,而不是可以像下面这样使用:
Select DATEFROMPARTS(YEAR(GETDATE()), MONTH(GETDATE()), 1) as myNewDate
Run Code Online (Sandbox Code Playgroud)
结果将是:
2021-01-01
如果您需要时间为零,例如2018-01-17 00:00:00.000:
SELECT CONVERT(DATETIME, CONVERT(DATE, GETDATE()), 121)
| 归档时间: |
|
| 查看次数: |
584390 次 |
| 最近记录: |