,我有以下數據:日期時間解釋問題
StartDate FinishDate Details
09/10/2013 11/10/2013 xxx
14/10/2013 13/10/2014 Taking a year off
雖然編輯這個數據我該檢查的日期範圍不重疊。
我正在通過ado來訪問SQL查詢來執行此操作;我將輸入日期輸入數據庫格式(即'mm/dd/yyyy');這是我得到的查詢:
SELECT Count(*)
FROM MarkerAbsence
WHERE PerID = 718 AND
('10/09/2013' BETWEEN StartDate AND FinishDate OR
'10/11/2013' BETWEEN StartDate AND FinishDate)
如果數據是有效的,它應該返回零記錄;但它不返回1(是上面列出的第二個記錄),因此似乎將「10/11/2013」解釋爲dd/mm/yyyy而不是mm/dd/yyyy。
然而,如果我這樣做是SMO:
DECLARE @datevar datetime2 = '31/12/2008';
SELECT @datevar;
我得到:
Msg 241, Level 16, State 1, Line 1
Conversion failed when converting date and/or time from character string.
雖然
DECLARE @datevar datetime2 = '12/31/2008';
SELECT @datevar;
回報
2008-12-31 00:00:00.0000000
那麼,爲什麼我有這個問題,我該如何解決它?
什麼是StartDate和FinishDate字段的數據類型?您正在使用哪種RDBMS?它是SQL Server嗎? –
您確定它與第二條記錄匹配,而不是第一條記錄?我認爲2013年9月10日會在10/09/2013和10/11/2013之間。 –