問題: 以星期一做為一周的第一天。帶入日期取得當週第一天。
原本將日期帶入 weekday 的函數得到的 數字 1~7 直接減的話,得到的日期是星期天。
一 二 三 四 五 六 日 :星期
2 3 4 5 6 7 1 :S= Sybase DATEPART( WEEKDAY ... ) 取得的值
0 -1 -2 -3 -4 -5 -6 : D=每個不同日子需要減的數量(要取得星期一做為當週的第一天的話)
D = - ( S + 5 ) % 7
範例: 假設日期欄位為 uptDate
DATEADD(
Day,
- MOD(
DATEPART( Weekday,
convert( datetime,
convert( char(10), uptDate, 102 ),
102
)
) + 5,
7
),
convert(datetime,convert(char( 10),uptDate,102),102)
)
reference:
Sybase Date function:http://manuals.sybase.com/onlinebooks/group-as/asg1250e/sqlug/@Generic__BookTextView/34010;pt=30348/*
Sybase Datatype conversion functionshttp://manuals.sybase.com/onlinebooks/group-as/asg1250e/sqlug/@Generic__BookTextView/34781;pt=35709
沒有留言:
張貼留言