Я стараюсь:
SELECT *
FROM dbo.March2010 A
WHERE A.Date >= 2010-04-01;
A.Date
выглядит как: 2010-03-04 00:00:00.000
Однако это не работает.
Кто-нибудь может дать ссылку, почему?
sql
sql-server
datetime
Эрик Фрэнсис
источник
источник
Ответы:
В вашем запросе
2010-4-01
рассматривается как математическое выражение, поэтому по сути это читается(
2010 minus 4 minus 1 is 2005
Преобразование в правильноеdatetime
и использование одинарных кавычек исправит эту проблему.)Технически, парсер может позволить вам сойти с рук
он сделает преобразование за вас, но, по моему мнению, оно менее читабельно, чем явное преобразование в a
DateTime
для программиста по обслуживанию, который придет за вами.источник
SET LANGUAGE FRENCH
. :-) На эту дату вы получите 4 января, а не 1 апреля. В другие дни вы можете получить ошибку.CONVERT(datetime, '20100401 10:01:01')
- передача 2010-04-01 работает в SQL Server Management Studio, но не при отправке оператора SQL через PHP / MSSQL.Попробуйте заключить дату в символьную строку.
источник
Мы можем использовать как ниже, а также
источник
Сначала конвертируйте TexBox в Datetime, затем .... используйте эту переменную в Query
источник
Подводя итог, правильный ответ:
Это позволит избежать проблем с другими языковыми системами и будет использовать индекс.
источник