Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Kesalahan overflow aritmatika saat mengonversi ekspresi ke tipe data datetime

31 September bukanlah tanggal, jadi SQL tidak dapat mengubahnya menjadi tanggal.

Selain itu, Anda harus membuat kode tanggal dalam format budaya yang tidak spesifik (yyyyMMdd). 01/08/2012 dapat mengonversi ke 1 Agustus di Server Anda, tetapi berjalan di yang lain dan bisa jadi 8 Januari. 20120801 akan dikonversi menjadi 1 Agustus pada semua mesin.

Selain itu Mengapa Anda mengonversi tanggal menjadi NVARCHAR ? Anda menghapus keuntungan dari indeks yang Anda miliki, dan juga melakukan konversi implisit dan eksplisit yang tidak perlu. Dengan asumsi MESSAGEINSERTDATE adalah Kolom DATETIME yang bisa Anda gunakan

WHERE MESSAGEINSERTDATE BETWEEN '20120801' AND '20120930'

Jika Anda perlu menghapus waktu dari MESSAGEINSERTDATE gunakan

CAST(MESSAGEINSERTDATE AS DATE)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Judul Kolom yang Dihasilkan Secara Dinamis dalam kueri sql

  2. Impor kolom spreadsheet Excel ke database SQL Server

  3. Cara Menambahkan Pemisah ke String Gabungan di SQL Server – CONCAT_WS()

  4. 10 Fakta Tentang Pemantauan Kinerja Basis Data yang Mungkin Mengejutkan Anda

  5. LINQ to SQL :Terlalu banyak Penggunaan CPU:Apa yang terjadi ketika ada banyak pengguna