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

SQL Convert Nvarchar(255) ke masalah DateTime

coba gunakan

CONVERT(datetime,OldDate ,103)

"103" memberi tahu konverter bahwa formatnya adalah dd/mm/yyyy

EDIT

di sini bagus seperti dengan banyak contoh:http://www.sqlusa.com/bestpractices/datetimeconversion /

Anda tampaknya memiliki data m/d/y serta d/m/y, ini yang terbaik yang dapat Anda lakukan:

DECLARE @Table1 table (PK int, OldDate nvarchar(255) null)
DECLARE @Table2 table (PK int, NewDate datetime not null)
INSERT @Table1 VALUES (1,'26/07/03')
INSERT @Table1 VALUES (2,null)
INSERT @Table1 VALUES (3,null)
INSERT @Table1 VALUES (4,'23/07/2003')
INSERT @Table1 VALUES (5,'7/26/2003')
INSERT @Table1 VALUES (6,null)
INSERT @Table1 VALUES (7,'28/07/03')

SET DATEFORMAT dmy

INSERT INTO @Table2
        (PK, NewDate)
    SELECT
        PK,
        CASE 
            WHEN ISDATE(OldDate)=1 THEN OldDate
            ELSE '1/1/1900'
        END
        FROM @Table1

SET DATEFORMAT mdy

UPDATE t2
    SET NewDate=OldDate
    FROM @Table2           t2
        INNER JOIN @Table1 t1 ON t2.PK=t1.PK
    WHERE t2.NewDate='1/1/1900' AND ISDATE(OldDate)=1 

SELECT * FROM @Table2

KELUARAN:

PK          NewDate
----------- -----------------------
1           2003-07-26 00:00:00.000
2           1900-01-01 00:00:00.000
3           1900-01-01 00:00:00.000
4           2003-07-23 00:00:00.000
5           2003-07-26 00:00:00.000
6           1900-01-01 00:00:00.000
7           2003-07-28 00:00:00.000

(7 row(s) affected)

Saya menggunakan '1/1/1900' karena Anda memiliki Tanggal Baru sebagai NOT NULL.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Sql Server 2008 NVARCHAR panjang -1

  2. Server sql memperbarui beberapa kolom dari tabel lain

  3. Kesulitan dalam menulis Stored Proc untuk mengambil data untuk Jqgrid Pagination

  4. Tambahkan Batasan CHECK ke Tabel yang Ada di SQL Server (T-SQL)

  5. Menghitung kolom secara otomatis dalam tabel sql berdasarkan data baris sebelumnya