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?
sql
sql-server
datetime
Eric Francis
sumber
sumber
Jawaban:
Dalam kueri Anda,
2010-4-01
diperlakukan sebagai ekspresi matematis, jadi intinya itu dibaca(
2010 minus 4 minus 1 is 2005
Mengubahnya menjadi layakdatetime
, dan menggunakan tanda kutip tunggal akan memperbaiki masalah ini.)Secara teknis, parser memungkinkan Anda untuk lolos
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.sumber
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.
sumber
Kita bisa menggunakan seperti di bawah ini juga
sumber
Pertama-tama, konversi TexBox ke dalam Datetime lalu .... gunakan variabel itu ke dalam Query
sumber
Singkatnya, jawaban yang benar adalah:
Ini akan menghindari masalah dengan sistem bahasa lain dan akan menggunakan indeks.
sumber