Saya ingin memasukkan datetime
nilai ke dalam tabel (SQL Server) menggunakan kueri sql di bawah ini
insert into table1(approvaldate)values(18-06-12 10:34:09 AM);
Tapi saya mendapatkan pesan kesalahan ini. Incorrect syntax near '10'.
Saya mencobanya dengan kutipan
insert into table1(approvaldate)values('18-06-12 10:34:09 AM');
Saya mendapatkan pesan kesalahan ini Cannot convert varchar to datetime
Mohon bantuannya! Terima kasih.
sql
sql-server-2008
datetime
Shee
sumber
sumber
5
?YYYYMMDD HH:MM:SS
(dalam format 24 jam - format dunia, siapa pun selain AS menggunakan ini, bukan hanya militer ....) tanpa garis - ia berfungsi, bahkan untukBritish
bahasa. Namun jika Anda menggunakanYYYY-MM-DD HH:MM:SS
, itu gagal - dalam kasus itu (dengan tanda hubung), Anda perlu memisahkan tanggal dan waktu denganT
literal.SET DATEFORMAT
pernyataannya . Ini adalah pengaturan untuk koneksi individual, tetapi pengaturan dapat ditentukan di seluruh server. Anda juga dapat menentukanSET LANGUAGE
untuk mengontrol hal-hal seperti karakter mana yang digunakan untuk radix dan sejenisnya, dan format tanggal akan mewarisi dari itu (lagi-lagi, di tingkat server atau koneksi). Hanya saja defaultnya adalah Bahasa Inggris AS, dan mdy adalah format AS. ymd dengan tanggal 4 tahun tidak selalu berhasil.Pilihan bahasa-lebih bebas untuk string literal adalah format ISO 8601 standar internasional "YYYY-MM-DDThh: mm: ss". Saya menggunakan query SQL di bawah ini untuk menguji format, dan itu memang berfungsi di semua bahasa SQL di sys.syslanguages :
Menurut bagian Format Tanggal dan Waktu Literal di Microsoft TechNet, format standar tanggal standar ANSI SQL "YYYY-MM-DD hh: mm: ss" seharusnya "multi-bahasa". Namun, menggunakan kueri yang sama, format ANSI tidak berfungsi di semua bahasa SQL.
Misalnya, dalam bahasa Denmark, Anda akan mengalami banyak kesalahan seperti berikut:
Jika Anda ingin membuat kueri dalam C # untuk dijalankan di SQL Server, dan Anda harus memberikan tanggal dalam format ISO 8601, gunakan specifier format "s" Sortable :
sumber
YYYYMMDD
hanya tanggal, danYYYY-MM-DDThh:mm:ss
(dengan tanda hubung, dan ya,T
antara tanggal dan waktu!) AtauYYYYMMDD HH:MM:SS
(tanpa tanda hubung, tanpa pemisahan huruf) untuk benar-benar mandiri dalam bahasa ...Studio manajemen membuat skrip seperti:
sumber
Anda perlu menambahkannya seperti
sumber
Tidak perlu menggunakan konversi. Cukup daftarkan sebagai tanggal yang dikutip dalam format ISO 8601.
Seperti itu:
Pemisah harus a
/
dan perlu dikelilingi oleh'
tanda kutip tunggal .sumber
Jika Anda menyimpan nilai melalui bahasa pemrograman apa pun
Berikut ini contoh dalam C #
Untuk menyimpan tanggal, Anda harus mengonversikannya terlebih dahulu dan kemudian menyimpannya
FooDate adalah variabel datetime yang berisi tanggal Anda dalam format Anda.
sumber
Saya menemukan masalah yang lebih umum: mendapatkan format datetime yang berbeda (dan belum tentu dikenal) dan memasukkannya ke dalam kolom datetime. Saya telah menyelesaikannya dengan menggunakan pernyataan ini, yang akhirnya menjadi fungsi skalar (relevan untuk ODBC kanonik, Amerika, ANSI, dan gaya tanggal waralaba \ Inggris - dapat diperluas):
sumber