SQL中的日期格式更改

SQL中的日期格式更改,sql,date-formatting,date-format,Sql,Date Formatting,Date Format,我正在尝试将此sql查询上的日期输出格式化为yyyy-mm-dd 我需要删除00:00:00,只需要添加一个转换。测试此代码: DECLARE @test DATE SET @test = CONVERT(DATE, DATEADD(DAY, 90, GETDATE())) SELECT @test 或者更容易测试: SELECT CONVERT(DATE, DATEADD(DAY, 90, GETDATE())) 编辑 正如@RBarryYoung所评论的,实际上,根据您的配置,它可以返回

我正在尝试将此sql查询上的日期输出格式化为yyyy-mm-dd

我需要删除00:00:00,只需要添加一个转换。测试此代码:

DECLARE @test DATE
SET @test = CONVERT(DATE, DATEADD(DAY, 90, GETDATE()))
SELECT @test
或者更容易测试:

SELECT CONVERT(DATE, DATEADD(DAY, 90, GETDATE()))
编辑

正如@RBarryYoung所评论的,实际上,根据您的配置,它可以返回不同的日期格式,而不是您所要求的格式。在这个案例编号121上,使用转换指定您想要的样式。查看有关设置样式和使用CONVERT的详细信息

两个返回:

2013-08-08

我发现CONVERT format 121通常提供我想要的一切:

SELECT CONVERT(varchar(10), getdate(), 121)
因为我几乎总是只使用MilDate兼容的、可排序的日期字符串,所以121是我必须记住的唯一样式编号

如果您只需要日期,那么如上所述,将VARCHAR长度限制为10

如果你只是想要HH:MM:SS,那么就用VARCHAR19把它包在右边,8

如果您想为定时测量包含毫秒,只需使用VARCHAR23

如果您记不起字符串长度和偏移量,请使用VARCHARMAX:

SELECT CONVERT(varchar(MAX), getdate(), 121)
然后从输出中计算出来,并更改长度和右。。你需要什么。这比每次我需要设置日期时间格式时都要费力地完成大量的转换要容易得多。

使用该函数,如下所示:

DATE_FORMAT(DATEADD(DAY,90,getdate()), '%Y-%m-%d');
看一看

您要查找的格式遵循此模式
选择CONVERTVARCHAR10,GETDATE,120

您使用的是哪种DBMS?除非指定样式参数,否则这肯定是不可靠的。它在我的系统上给出了不同的结果。谢谢,@rbaryyoung,你是对的,添加了一个包含更多信息的编辑。我试过了,但仍然不喜欢它。当code=3时,字符串大小写为CONVERTVARCHAR10,DATEADDDAY,90,data\u entry\u date,121I我试过了,但它不起作用。这是当code=3时的字符串大小写,然后将varchar 10,DATEADDDAY,90,data_entry_date,120转换为[YYYY-MM-DD]选择REPLACECONVERTvarchar 10,DATEADDDAY,90,data_entry_date,111'/'.-'另外,我的复制/粘贴有点过度。使用SELECT CONVERTVARCHAR10,GETDATE,120将GETDATE替换为日期值。选择CONVERTVARCHAR10,DATEADDDAY,90,getdate,120,这很有效谢谢你的帮助+1:尽管我更喜欢样式121,因为如果你需要的话,你也可以得到毫秒。
SELECT CONVERT(varchar(MAX), getdate(), 121)
DATE_FORMAT(DATEADD(DAY,90,getdate()), '%Y-%m-%d');