大家好,今天跟大家一起學習如何在SQL Server裡面,寫撈出一週的SQL語法。
之後會藉著這個小語法,演變成在Visual Studio 2017 寫出一個簡單的排班表。敬啟期待,希望自己不要富堅。
那先介紹幾個日期相關的語法,首先是
1.GETDATE():目前資料庫的系統時間戳記以 datetime 值傳回 (不含資料庫時區位移)。 (簡單來說,就是取得目前的日期時間)
2.DATEADD():此函式會將指定的 number 值(以帶正負號的整數形式) 加到輸入 date 值的指定 datepart,然後傳回該修改過的值。 (簡單來說,就是針對日期做加減)
3.DATEDIFF():此函式會傳回跨越指定 startdate 和 enddate 之指定 datepart 界限的計數 (作為帶正負號的整數值)。
select
convert(varchar,DATEADD(day, -1, DATEADD(week, DATEDIFF(week, '', getDate()), '')),111) as N'星期日',
convert(varchar,DATEADD(week, DATEDIFF(week, '', getDate()), ''), 111) as N'星期一',
convert(varchar,DATEADD(day, +1, DATEADD(week, DATEDIFF(week, '', getDate()), '')),111) as N'星期二',
convert(varchar,DATEADD(day, +2, DATEADD(week, DATEDIFF(week, '', getDate()), '')),111) as N'星期三',
convert(varchar,DATEADD(day, +3, DATEADD(week, DATEDIFF(week, '', getDate()), '')),111) as N'星期四',
convert(varchar,DATEADD(day, +4, DATEADD(week, DATEDIFF(week, '', getDate()), '')),111) as N'星期五',
convert(varchar,DATEADD(day, +5, DATEADD(week, DATEDIFF(week, '', getDate()), '')),111) as N'星期六'
查詢結果:
參考網址:
GETDATE (Transact-SQL)
DATEADD (Transact-SQL)
DATEDIFF (Transact-SQL)