2012-08-28 22 views
0

我想按以下格式从SQL返回日期2011-12-DEC,2012-01-JAN,2012-02- FEB,2012-03-MAR等...以mm-mm-yyyy在SQL中编写日期的最佳方法是什么

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

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

哪个RDBMS做你用? –

回答

1

对于SQL Server,像这样

select convert(varchar(8), getdate(),120) 
     + convert(varchar(3),datename(month,getdate())) 
0

考虑一个DATE_FORMAT功能等,这取决于你的关系数据库管理系统。

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] 

会给你四月2006

只是围着它转,只要你喜欢要求。

1

对于Oracle使用TO_CHAR和日期格式。对于实施例

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

有一个宽范围的可能的日期格式字符串 参见here的。

1

如果你真的想YYYY-MM-MMM,那么你可以把它像这样(对于SQL Server):

select substring(convert(nvarchar, getdate(), 120), 1, 7) 
     + '-' + 
     substring(upper(datename(mm, getdate())), 1, 3) 
相关问题