Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Sự cố chuyển đổi SQL Nvarchar (255) thành DateTime

thử sử dụng

CONVERT(datetime,OldDate ,103)

"103" cho bộ chuyển đổi biết rằng định dạng là dd/mm/yyyy

CHỈNH SỬA

đây là một tương tự tốt với nhiều ví dụ: http://www.sqlusa.com/bestpractices/datetimeconversion /

Dường như bạn có dữ liệu m / d / y cũng như d / m / y, đây là điều tốt nhất bạn có thể làm:

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

ĐẦU RA:

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)

Tôi đã sử dụng '1/1/1900' vì bạn có NewDate là 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 Nvarchar và câu lệnh chuẩn bị Java

  2. SQL Server LIKE chứa các ký tự trong ngoặc

  3. Cách hiển thị ngày ở định dạng ngày của Hoa Kỳ trong SQL Server (T-SQL)

  4. Gói SSIS được thực thi trong Tác nhân máy chủ không hoạt động (ngay cả khi báo cáo thành công)

  5. Làm cách nào để xuất tất cả dữ liệu từ bảng sang định dạng sql có thể chèn?