站內搜尋:Yahoo搜尋如果沒有給完整的網址,請在站內再搜尋一次!

2013-10-13

T-SQL函數:用CONVERT轉換日期時間的顯示格式

CONVERT的語法: CONVERT(資料型態[(長度)], 運算式[,格式])

YY西元年  YYYY西元年  依據的標準  顯示的格式
- 0 or 100 Default mon dd yyyy hh:miAM (or PM)
1 101 U.S. mm/dd/yyyy
2 102 ANSI yy.mm.dd
3 103 British/French dd/mm/yyyy
4 104 German dd.mm.yy
5 105 Italian dd-mm-yy
6 106 - dd mon yy
7 107 - Mon dd, yy
8 108 - hh:mi:ss
- 9 or 109 Default + milliseconds mon dd yyyy hh:mi:ss:mmmAM
(or PM)
10 110 USA mm-dd-yy
11 111 JAPAN yy/mm/dd
12 112 ISO yymmdd
yyyymmdd
- 13 or 113 Europe default + milliseconds dd mon yyyy hh:mi:ss:mmm(24h)
14 114 - hh:mi:ss:mmm(24h)
- 20 or 120 ODBC canonical yyyy-mm-dd hh:mi:ss(24h)
- 21 or 121 ODBC canonical
(with milliseconds)
yyyy-mm-dd hh:mi:ss.mmm(24h)
- 126 ISO8601 yyyy-mm-ddThh:mi:ss.mmm
(no spaces)
- 127 ISO8601 with time zone Z. yyyy-mm-ddThh:mi:ss.mmmZ
(no spaces)
- 130 Hijri dd mon yyyy hh:mi:ss:mmmAM
- 131 Hijri dd/mm/yy hh:mi:ss:mmmAM

怎麼沒有 yyyy-mm-dd ? 該如何轉換?可以用REPLACE函數幫忙。
select replace(convert(varchar(10), GETDATE(), 111), '/', '-') as 'yyyy-mm-dd'

那 yy-mm-dd  該如何轉換?可以用SUBSTRING函數幫忙。
select SUBSTRING(convert(varchar(10), GETDATE(), 120), 3, 8) as 'yy-mm-dd'

怎麼轉換出月份名稱的全名?例如:Month yyyy
select DATENAME(MM, GETDATE()) + ' ' + CAST(YEAR(GETDATE()) as varchar(4)) as 'Month yyyy'

怎麼轉換成民國年制 yyymmdd ?
select cast((cast(CONVERT(varchar(8),getdate(),112) as int) - 19110000) as varchar(7)) as 'yyymmdd'

怎麼顯示成 yyyy/mm ?
select Left(CONVERT(VARCHAR(8), GETDATE(), 111), 7) as 'yyyy/mm'


參考資料來源:
CAST and CONVERT (Transact-SQL)
http://msdn.microsoft.com/en-us/library/ms187928(v=sql.105).aspx

沒有留言:

張貼留言