我有一個數據類型爲datetime的列,導入數據的方式始終是前一天到今天。其中日期時間在列時間的上午12點和列時間的第二天上午10點之間
表中沒有存儲歷史數據 - 之前的數據在導入新數據之前被刪除。
這就是說我想寫一個where子句,其中我的ESTEndTime列在時間戳列的00:00:00和時間戳列的第二天的10:00:00之間。
我已經搜索,但找不到具體到我正在尋找什麼。
目的是主要捕捉那些在夜間工作的人的最終時間。數據導出時,它始終導出爲前一天至第二天,例如10月1日至10月2日。這將使我們能夠看到過夜工作人員的最新註銷時間。在我剛剛提到的例子中,數據將包括從10月1日00:00:00到10月2日23:59:59的所有內容。我們無法限制到特定時間。所以,當我希望實現的時候,使用這個例子將它限制在10月1日00:00:00到10月2日10:00:00之間的where子句中。問題是我不想使用那些實際的日期,因爲我的日期總是在變化,所以我在這裏尋求幫助。
代碼,我有,但沒有得到預期的結果
SELECT timestamp, emp_id, dept, ESTStartTime, ESTEndTime
,CONCAT(emp_id, '-', FORMAT(ESTStartTime, 'yyyy/MM/dd-HH:mm')) AS Index2Start
,CONCAT(emp_id, '-', FORMAT(ESTEndTime, 'yyyy/MM/dd-HH:mm')) AS Index3Stop
,CONCAT(emp_id, '-', FORMAT(ESTEndTime, 'yyyy/MM/dd')) AS Index3StopDay
FROM dbo.[test]
WHERE ESTEndTime BETWEEN DATEADD(DAY, DATEDIFF(DAY, 0, timestamp), 0) + '00:00'
AND DATEADD(DAY, DATEDIFF(DAY, 1, timestamp), 1) + '10:00'
ORDER BY ESTEndTime DESC
帖子你寫到目前爲止請代碼。 –
「,其中我的日期時間列在日期時間列的00:00:00到日期時間列的第二天的10:00:00之間。這沒有意義。 –
是的你是正確的,我的意思是'我的ESTEndTime列在00:00:00的時間戳列和10:00:00的時間戳列的那一天之間'。 – sly123