如何在 SQL Server 2012 以前的版本中使用類似 FORMAT 函數來轉換日期

本文將介紹如何在 SQL Server 2012 以前的版本中使用類似 FORMAT 函數來轉換日期。

情境描述

今天跟小歐討論到 FORMAT 字串函數只能用在 SQL Server 2012,如果要在 SQL Server 2012 以前的版本中達到類似 FORMAT 的效果該怎麼做呢?請見下一節。

實作步驟

假設您嘗試利用下列 T-SQL 指令碼來取得特定日期是星期幾:


declare @d datetime = '20130328'
select format(@d,'dddd','en-us') as [weekday]

執行結果如下:

image

由於 FORMAT 字串函數是 SQL Server 2012 新增的功能,在之前的版本可以利用下列 T-SQL 敘述來做到類似的功能,您可以先切換目前連線的語言,接著利用 DATENAME 日期函數來取得星期幾的字串。


set language English
declare @d datetime = '20130328'
select DATENAME(dw,@d) as [weekday]

執行結果與 FORMAT 相同,如下圖:

image

參考資料

- SQL Server 2012 的 T-SQL 新功能 - 字串函數

- FORMAT

- DATENAME