SQLServerの日付関連
<CONVERT関数による日付フォーマット>
–yyyy.mm.dd
SELECT CONVERT(VARCHAR,SYSDATETIME(),102)
>2017.11.29
–hh:mi:ss
SELECT CONVERT(VARCHAR,SYSDATETIME(),108)
>18:53:55
–yyyy/mm/dd
SELECT CONVERT(VARCHAR,SYSDATETIME(),111)
>2017/11/29
–yyyymmdd
SELECT CONVERT(VARCHAR,SYSDATETIME(),112)
>20171129
–hh:mi:ss:fff
SELECT CONVERT(VARCHAR,SYSDATETIME(),114)
>18:54:46.0258592
–yyyy-mm-dd hh:mi:ss
SELECT CONVERT(VARCHAR,SYSDATETIME(),120)
>2017-11-29 18:54:55
–yyyy-mm-dd hh:mi:ss:fff
SELECT CONVERT(VARCHAR,SYSDATETIME(),121)
>2017-11-29 18:55:06.8042521
SELECT CONVERT(VARCHAR,SYSDATETIME(),11)
>17/11/29
SELECT CONVERT(VARCHAR,SYSDATETIME(),12)
>171129
SELECT CONVERT(VARCHAR,SYSDATETIME(),20)
>2017-11-29 19:15:04
<ISDATE関数による日付の妥当性チェック>
戻り値 1:有効、0:無効
SELECT ISDATE(‘あ’)
>0
SELECT ISDATE(‘2017/01/01’)
>1
SELECT ISDATE(‘2017/1/1 09:30:15:300’)
>1
SELECT ISDATE(‘2017/02/31’)
>0
SELECT ISDATE(GETDATE())
>1
SELECT ISDATE(SYSDATETIME())
>エラー
「引数のデータ型 datetime2 は isdate 関数の引数 1 では無効です。」
–期間の日付を取得
WITH DateTable(MyDate) AS (
SELECT
CONVERT(DATETIME, ‘2017/01/01’)
UNION ALL
SELECT
DATEADD(d, 1, MyDate)
FROM
DateTable
WHERE
MyDate < CONVERT(DATETIME, ‘2017/03/09’)
)
SELECT
MyDate
FROM
DateTable
–曜日を取得
SELECT
CASE DATEPART(WEEKDAY, GETDATE())
WHEN 1 THEN ‘Sun’
WHEN 2 THEN ‘Mon’
WHEN 3 THEN ‘Tue’
WHEN 4 THEN ‘Wed’
WHEN 5 THEN ‘Thu’
WHEN 6 THEN ‘Fri’
WHEN 7 THEN ‘Sat’
END
Comments are closed.