Я намагаюсь:
SELECT *
FROM dbo.March2010 A
WHERE A.Date >= 2010-04-01;
A.Date
виглядає наче: 2010-03-04 00:00:00.000
Однак це не працює.
Хтось може надати довідку, чому?
Я намагаюсь:
SELECT *
FROM dbo.March2010 A
WHERE A.Date >= 2010-04-01;
A.Date
виглядає наче: 2010-03-04 00:00:00.000
Однак це не працює.
Хтось може надати довідку, чому?
Відповіді:
select *
from dbo.March2010 A
where A.Date >= Convert(datetime, '2010-04-01' )
У вашому запиті 2010-4-01
трактується як математичний вираз, тому по суті його читають
select *
from dbo.March2010 A
where A.Date >= 2005;
( 2010 minus 4 minus 1 is 2005
Перетворивши його на належне datetime
та використовуючи одинарні лапки, виправте цю проблему.)
Технічно аналізатор може дозволити вам піти
select *
from dbo.March2010 A
where A.Date >= '2010-04-01'
це зробить перетворення для вас, але, на мою думку, воно менш читабельне, ніж явне перетворення на DateTime
програміст з технічного обслуговування, який настане за вами.
SET LANGUAGE FRENCH
. :-) На цю дату ви отримаєте 4 січня замість 1 квітня. Для інших дат ви можете отримати помилку.
CONVERT(datetime, '20100401 10:01:01')
- проходження 2010-04-01 працює в студії управління SQL Server, але не при відправці оператора SQL через PHP / MSSQL.
Спробуйте долучити свою дату до символьного рядка.
select *
from dbo.March2010 A
where A.Date >= '2010-04-01';
Ми можемо використовувати як нижче
SELECT *
FROM dbo.March2010 A
WHERE CAST(A.Date AS Date) >= '2017-03-22';
SELECT *
FROM dbo.March2010 A
WHERE CAST(A.Date AS Datetime) >= '2017-03-22 06:49:53.840';
DateTime start1 = DateTime.Parse(txtDate.Text);
SELECT *
FROM dbo.March2010 A
WHERE A.Date >= start1;
Спочатку конвертуйте TexBox у Datetime, потім .... використовуйте цю змінну у Query