2012-08-28 25 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) 
相關問題