[英]Get date of start day (ex Monday) of a week when having a current date of a random day (ex Friday) in that week
例如,我一周的開始日期是星期一 (2/1/2011),當用戶輸入是 (4/1/2011) 星期三時,是否有任何內置函數可以幫助我獲取當前的開始日期星期?
謝謝你。
假設 SQL 服務器的DATEFIRST
設置符合您對周如何對齊的想法(這可能僅適用於周六、周日等),那么來自任意周一的 DATEADD/DATEDIFF 對應該給出您想要的結果:
select DATEADD(week,DATEDIFF(week,'20110103',CURRENT_TIMESTAMP),'20110103')
CURRENT_TIMESTAMP
顯然選擇了今天的日期。 如果您從一個表 ( Tab
) 中選擇一個名為RandomDate
的列,那么您可以這樣做:
select DATEADD(week,DATEDIFF(week,'20110103',RandomDate),'20110103') as MondayDate
from Tab
但是我對您的示例感到困惑,因為 1 月 2 日和 2 月 1 日(通常解釋為“2/1/2011”的可能性)都不是星期一。 我選擇的隨機星期一是'20110103'
- 因此,如果您需要查找特定日期的星期五,則在出現'20110107'
'20110103'
為此沒有內置 function,
但是你可以使用:
SELECT DATEADD(WEEK, DATEDIFF(WEEK, 0, GETDATE()), 0)
select getdate() - CAST(getdate()-.5 as int)%7
或者
select cast(getdate() - CAST(getdate()-.5 as int)%7 as date)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.