Press "Enter" to skip to content

SQLServerの日付関連

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.