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

konversi varchar(ddmmyyyy) ke format tanggal

ddmmyyyy bukan format tanggal yang valid. Anda harus terlebih dahulu membuat string itu menjadi sesuatu yang dapat diuraikan sebagai DATE / DATETIME . Cara tercepat mungkin cukup SUBSTRING potongan menjadi mm/dd/yyyy format. Itu berhasil mengkonversi. Tetapi Anda memiliki VARCHAR(8) . Jadi, Anda perlu meningkatkannya menjadi VARCHAR(10) (atau lebih baik lagi, cukup CHAR(10) ), atau mendeklarasikan variabel lokal untuk menyimpan nilai yang diubah.

Misalnya:

DECLARE @Date VARCHAR(8); -- input parameter
SET @Date = '25032014';

DECLARE @Date2 CHAR(10);
SET @Date2 = SUBSTRING(@Date, 3, 2)
             + '/' + SUBSTRING(@Date, 1, 2)
             + '/' + SUBSTRING(@Date, 5, 4);

SELECT @Date2, CONVERT(DATE, @Date2);
-- 03/25/2014     2014-03-25

EDIT: Sebenarnya, saya menemukan cara yang sedikit lebih sederhana. Saya memulai dengan metode ini tetapi menyadari bahwa itu tidak berhasil dengan ddmmyyyy sebagai lawan dari mmddyyyy . Saya entah bagaimana melewatkan bahwa ada nomor gaya tanggal yang sesuai untuk dd/mm/yyyy . Jadi, cukup tambahkan dua garis miring ke string yang masuk dan kemudian panggil CONVERT berfungsi, tetapi hanya jika Anda menggunakan 103 sebagai "gaya". Dan seperti solusi pertama, ini memerlukan perubahan parameter yang masuk menjadi VARCHAR(10) atau CHAR(10) bukannya VARCHAR(8) , atau membuat variabel lokal menjadi CHAR(10) .

DECLARE @Date VARCHAR(8); -- input parameter
SET @Date = '25032014';

DECLARE @Date2 CHAR(10);
SET @Date2 = STUFF(STUFF(@Date, 3, 0, '/'), 6, 0, '/');

SELECT @Date2, CONVERT(DATE, @Date2, 103); -- 103 = dd/mm/yyyy
-- 25/03/2014     2014-03-25

Konversi "gaya" dapat ditemukan di halaman MSDN untuk CAST dan CONVERT .




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara menghindari tugas FTP SSIS agar tidak gagal ketika tidak ada file untuk diunduh?

  2. Kueri Rentang Waktu Tertentu di SQL Server

  3. Tambahkan IIS 7 AppPool Identities sebagai SQL Server Logos

  4. Bagaimana cara mengubah tajuk kolom dan nilainya menjadi baris di sql?

  5. Layanan Analisis Hanya Otentikasi Windows