2

私がここに持っているものは私にとって非常に奇妙です...

Select BARCODE, DATA 
from HISTORIA 
WHERE BARCODE='25405187' AND DATA = '2013-03-08 00:00:00.000'

Select BARCODE, DATA 
from HISTORIA 
WHERE BARCODE='25405187'

簡単でしょ?

次に、返されたデータを見てください。

ここに画像の説明を入力してください

Ekhmmm...なぜ...なぜ...WHYYYY?:)ご覧のとおり、適切な日付がありますが、比較すると結果が失われます。

SQL Server2005ExpressとManagementStudioExpressを使用しています

4

2 に答える 2

3

'2013-03-08 00:00:00.000'にキャストするときの明確な形式ではありませんdatetime。8月3日または3月8日を意味します。

それはあなたの設定に依存しDATEFORMATます(それはあなたのログインの言語に依存します)。

SET LANGUAGE english

SELECT CAST('2013-03-08 00:00:00.000' AS DATETIME) AS english

SET LANGUAGE british

SELECT CAST('2013-03-08 00:00:00.000' AS DATETIME) AS british

戻り値

Changed language setting to us_english.
english
-----------------------
2013-03-08 00:00:00.000

Changed language setting to British.
british
-----------------------
2013-08-03 00:00:00.000

使用する

WHERE BARCODE='25405187' AND DATA = '20130308 00:00:00.000' 

またはもっと簡単に

WHERE BARCODE='25405187' AND DATA = '20130308' 
于 2013-03-10T20:52:13.713 に答える
1

この標準(ISO)日付表現を試してください:

Select BARCODE, DATA 
from HISTORIA 
WHERE BARCODE='25405187' AND DATA = '2013-03-08T00:00:00.000'
于 2013-03-11T17:01:47.337 に答える