我正在尝试将此 sql 查询上的日期输出格式化为yyyy-mm-dd
(DATEADD(DAY,90,getdate()) output yyyy-mm-dd 00:00:00
我需要删除00:00:00
我正在尝试将此 sql 查询上的日期输出格式化为yyyy-mm-dd
(DATEADD(DAY,90,getdate()) output yyyy-mm-dd 00:00:00
我需要删除00:00:00
看看这里
您正在寻找的格式遵循此模式
SELECT CONVERT(VARCHAR(10), GETDATE(), 120)
我发现 CONVERT 格式 121 通常会给我我想要的一切:
SELECT CONVERT(varchar(10), getdate(), 121)
由于我几乎总是只使用与 MilDate 兼容的可排序日期字符串,因此 121 是我必须记住的唯一样式编号。
如果您只想要日期,那么如上所述,将VARCHAR
长度限制为 10。
如果您只想HH:MM:SS
使用VARCHAR(19)
并将其包装在RIGHT(.., 8)
.
如果您想在计时测量中包含毫秒,只需使用 VARCHAR(23)。
如果您不记得字符串的长度和偏移量,只需使用 VARCHAR(MAX):
SELECT CONVERT(varchar(MAX), getdate(), 121)
然后从输出中算出它,并将长度更改为RIGHT(..)
您需要的长度。比每次我需要格式化 DateTime时都要翻阅庞大的CAST And CONVERT
文档页面要容易得多。
使用DATE_FORMAT函数,如下所示:
DATE_FORMAT(DATEADD(DAY,90,getdate()), '%Y-%m-%d');
只需要添加一个CONVERT
. 测试这段代码:
DECLARE @test DATE
SET @test = CONVERT(DATE, DATEADD(DAY, 90, GETDATE()))
SELECT @test
甚至更容易测试:
SELECT CONVERT(DATE, DATEADD(DAY, 90, GETDATE()))
编辑
正如@RBarryYoung 评论的那样,确实取决于您的配置,它可以返回不同的日期格式,而不是您所要求的格式。在此案例编号 121 上使用CONVERT
精确指定您想要的样式。查看Microsoft BOL以获取有关样式和使用的更多信息CONVERT
SELECT CONVERT(VARCHAR(10), GETDATE(), 121)
两者都返回:
2013-08-08