2013年6月28日 星期五

SQL - 如何指定DATE PART的特定時間

假設我有一個需求,需要在TSQL中宣告一個時間,日期為當下的日期(例如現在撰文的6/29)、並指定DATEPART HOUR為20,DATEPART MIN為45,該如何做?


 
     DECLARE @STARTDATE AS DATETIME 
     SET @STARTDATE = GETDATE();
     SET @STARTDATE =  DATEADD(hour, 20, DATEDIFF(DAY, 0, GETDATE()))
     SET @STARTDATE =  DATEADD(minute , 45, @STARTDATE)

其中最重要的應該是第2行
SET @STARTDATE = DATEADD(hour, 20, DATEDIFF(DAY, 0, GETDATE())),
先運用DATEDIFF(DAY, 0, GETDATE())找出,當下時間(假設為2013/6/29 18:05)與第0天(1900-1-1)相差了幾"日",此時取出來的時間皆為00:00分;之後再運用DATEADD指定hour與欲得到的hour就可以了

沒有留言:

張貼留言