下午,個月從日期返回不正確的值
我有一個SQL服務器的問題,我可以做一些幫助。 當我在錯誤的日期範圍內返回行的日期範圍中運行select語句時。
例如如果我執行以下
select * from theTable where startDate between '2016-09-01 00:00:00' and '2016-09-08 23:59:59'
我希望排在startDate
是1日和9月8日之間,有什麼我卻越來越是1月9日和8月9日之間的startDate
行。
我檢查我有使用DATEBASE設置的語言:
select * from sys.syslanguages order by name where name = @@language
這將返回英國
DBCC USEROPTIONS回報
textsize 2147483647
language British
dateformat dmy
datefirst 1
lock_timeout -1
quoted_identifier SET
arithabort SET
ansi_null_dflt_on SET
ansi_warnings SET
ansi_padding SET
ansi_nulls SET
concat_null_yields_null SET
isolation level read committed
我已經檢查了默認語言登錄,這也是英國人。
當我執行print month('2016-09-01 00:00:00')
它返回1,而不是9.除非是我弄錯了日期和時間上面應該是ODBC規範yyyy-mm-dd hh:mi:ss(24h)
。
爲什麼打印1而不是9,更重要的是我該如何解決?
印刷@@version
返回
Microsoft SQL Server 2005 - 9.00.5057.00 (X64)
Mar 25 2011 13:33:31
Copyright (c) 1988-2005 Microsoft Corporation
Enterprise Edition (64-bit) on Windows NT 5.2 (Build 3790: Service Pack 2)
謝謝您的幫助。 如果這個問題已經得到解答,你可以指點一下,但我找不到答案。
使用明確的格式('YYYYMMDD'):'where startDate> ='20160901'and startDate <'20160909'' – Lamak