0

我想以以下格式从 SQL 返回日期 2011-12-DEC、2012-01-JAN、2012-02-FEB、2012-03-MAR 等...

目前我有以下代码,但不认为它是最好的。它也不会在月份前返回 0(即 8 而不是 08)

print CONVERT(VARCHAR(20), DATEPART(yyyy,GETDATE())) + '-'+ CONVERT(VARCHAR(20), DATEPART(mm,GETDATE()))
4

5 回答 5

1

对于 Oracle,使用 TO_CHAR 和日期格式。例如

SELECT TO_CHAR(SYSDATE, 'YYYY-DD-MON') FROM DUAL

有多种可能的日期格式字符串请参见此处

于 2012-08-28T13:08:19.653 回答
1

如果你真的想要 yyyy-mm-mmm 那么你可以像这样得到它(对于 SQL 服务器):

select  substring(convert(nvarchar, getdate(), 120), 1, 7) 
        + '-' + 
        substring(upper(datename(mm, getdate())), 1, 3)
于 2012-08-28T13:12:36.347 回答
1

对于 SQL Server,类似这样

 select convert(varchar(8), getdate(),120)
      + convert(varchar(3),datename(month,getdate()))
于 2012-08-28T13:11:36.667 回答
0

好吧,您应该使用格式化程序(例如 AS [DD/MM/YYYY] )。所有这些都在此处列出,包括您对“月份”命名的要求 http://www.sql-server-helper.com/tips/date-formats.aspx

SELECT SUBSTRING(CONVERT(VARCHAR(11), GETDATE(), 113), 4, 8) AS [Mon-YYYY]

会给你 Apr-2006

随意转动它。

于 2012-08-28T13:05:12.977 回答
0

DATE_FORMAT根据您的 RDMS,考虑一个函数等。

于 2012-08-28T13:03:01.463 回答