Saya mencoba:
SELECT *
FROM dbo.March2010 A
WHERE A.Date >= 2010-04-01;
A.Date
seperti: 2010-03-04 00:00:00.000
Namun, ini tidak berfungsi.
Adakah yang bisa memberikan referensi mengapa?
Saya mencoba:
SELECT *
FROM dbo.March2010 A
WHERE A.Date >= 2010-04-01;
A.Date
seperti: 2010-03-04 00:00:00.000
Namun, ini tidak berfungsi.
Adakah yang bisa memberikan referensi mengapa?
Jawaban:
select *
from dbo.March2010 A
where A.Date >= Convert(datetime, '2010-04-01' )
Dalam kueri Anda, 2010-4-01
diperlakukan sebagai ekspresi matematis, jadi intinya itu dibaca
select *
from dbo.March2010 A
where A.Date >= 2005;
( 2010 minus 4 minus 1 is 2005
Mengubahnya menjadi layak datetime
, dan menggunakan tanda kutip tunggal akan memperbaiki masalah ini.)
Secara teknis, parser memungkinkan Anda untuk lolos
select *
from dbo.March2010 A
where A.Date >= '2010-04-01'
itu akan melakukan konversi untuk Anda, tetapi menurut saya itu kurang mudah dibaca daripada secara eksplisit mengkonversi ke DateTime
untuk programmer pemeliharaan yang akan datang setelah Anda.
SET LANGUAGE FRENCH
. :-) Untuk tanggal itu Anda akan mendapatkan 4 Januari bukannya 1 April. Untuk tanggal lain, Anda mungkin akan mendapatkan kesalahan.
CONVERT(datetime, '20100401 10:01:01')
- melewati 2010-04-01 bekerja di SQL Server Management Studio tetapi tidak ketika mengirim pernyataan SQL melalui PHP / MSSQL.
Coba lampirkan tanggal Anda ke dalam string karakter.
select *
from dbo.March2010 A
where A.Date >= '2010-04-01';
Kita bisa menggunakan seperti di bawah ini juga
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;
Pertama-tama, konversi TexBox ke dalam Datetime lalu .... gunakan variabel itu ke dalam Query