iT邦幫忙

0

sql 日期語法問題

  • 分享至 

  • xImage

請問我要在報表顯示 每個月 週的日期星期一~星期日為一周. 報表需呈現0610~0616. 語法該如何寫? 謝謝

外獅佬 iT邦大師 1 級 ‧ 2013-06-17 13:25:59 檢舉
t-sql
SELECT IIF(DATEPART(WEEKDAY,getdate())-2<0,getdate()+1,getdate()+DATEPART(WEEKDAY,getdate())-2) AS startday,IIF(DATEPART(WEEKDAY,getdate())=1,getdate(),getdate()+(8-DATEPART(WEEKDAY,getdate()))) AS endday
外獅佬 iT邦大師 1 級 ‧ 2013-06-17 13:27:37 檢舉
這東西,放在client site application,用程式去計算不是比較簡單嗎?
有必要透過資料庫去計算??
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

10
Albert
iT邦高手 1 級 ‧ 2013-06-17 13:19:49
最佳解答

我們在
全球最大資訊顧問公司

全台最大電腦製造公司
要求下
排程要用周別顯示
Oracle PL/SQL 第0周=當周 Monday - Sunday
但 PL.SQL 第一天是 Sunday 因此要加一天
本周一是 TRUNC(SYSDATE,'WW') + 1 = Monday
本周日是 TRUNC(SYSDATE,'WW') + 7 = Sunday
但是
SYSDATE 如果是周日會誤判

TRUNC('2013-06-16','WW') + 7 = '2013-06-23'

Albert iT邦高手 1 級 ‧ 2013-06-17 13:36:31 檢舉

因此要
TRUNC(SYSDATE-1,'WW') + 2 = Monday
TRUNC(SYSDATE-1,'WW') + 8 = Sunday

我要發表回答

立即登入回答