Sto provando:
SELECT *
FROM dbo.March2010 A
WHERE A.Date >= 2010-04-01;
A.Date
sembra: 2010-03-04 00:00:00.000
Tuttavia, questo non funziona.
Qualcuno può fornire un riferimento per il perché?
Sto provando:
SELECT *
FROM dbo.March2010 A
WHERE A.Date >= 2010-04-01;
A.Date
sembra: 2010-03-04 00:00:00.000
Tuttavia, questo non funziona.
Qualcuno può fornire un riferimento per il perché?
Risposte:
select *
from dbo.March2010 A
where A.Date >= Convert(datetime, '2010-04-01' )
Nella tua query, 2010-4-01
viene trattato come un'espressione matematica, quindi in sostanza viene letto
select *
from dbo.March2010 A
where A.Date >= 2005;
(La 2010 minus 4 minus 1 is 2005
conversione in una corretta datetime
e l'utilizzo di virgolette singole risolverà questo problema.)
Tecnicamente, il parser potrebbe permetterti di cavartela
select *
from dbo.March2010 A
where A.Date >= '2010-04-01'
farà la conversione per te, ma secondo me è meno leggibile della conversione esplicita in a DateTime
per il programmatore di manutenzione che verrà dopo di te.
SET LANGUAGE FRENCH
. :-) Per quella data riceverai il 4 gennaio anziché l'1 aprile. Per altre date potresti invece ricevere un errore.
CONVERT(datetime, '20100401 10:01:01')
- il passaggio del 01-04-2010 funziona in SQL Server Management Studio ma non quando si invia l'istruzione SQL tramite PHP / MSSQL.
Prova a racchiudere la tua data in una stringa di caratteri.
select *
from dbo.March2010 A
where A.Date >= '2010-04-01';
Possiamo usare anche come di seguito
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;
Prima converti TexBox in Datetime, poi .... usa quella variabile in Query