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

Thay đổi cột nvarchar thành định dạng Ngày tháng

Vì vậy, giả sử rằng đó là hai định dạng duy nhất của cột, thì bạn có thể làm như sau:

SELECT CONVERT(NVARCHAR(19),CONVERT(DATETIME,DT_APP,100),120)
FROM YourTable
WHERE DT_APP LIKE '%[aA-zZ]%'

ĐÃ CẬP NHẬT

Được rồi, nếu bạn muốn một cột khác, thì trước tiên bạn có thể tạo nó rồi điền các giá trị:

-- First create a new column
ALTER TABLE YourTable
ADD DT_APP2 DATETIME;

-- Fill that column with DATETIME values
UPDATE YourTable
SET DT_APP2 =   CASE WHEN DT_APP LIKE '%[aA-zZ]%'
                THEN CONVERT(DATETIME,DT_APP,100)
                ELSE CONVERT(DATETIME,DT_APP,120) END

Sau đó, bạn có thể kiểm tra cột để xem các giá trị có chính xác hay không và chỉ khi đó bạn mới nên xóa DT_APP cột.

CẬP NHẬT 2 Nếu bạn chỉ cần cập nhật các giá trị hiện tại, thì chỉ cần thực hiện:

UPDATE YourTable
SET DT_APP = CONVERT(NVARCHAR(19),CONVERT(DATETIME,DT_APP,100),120)
WHERE DT_APP LIKE '%[aA-zZ]%'



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm cách nào để chỉ định số cổng trong chuỗi kết nối SQL Server?

  2. Tự động hóa công việc sao lưu và bảo trì bằng cách sử dụng kế hoạch bảo trì trong SQL Server

  3. Lỗi:Không thể sử dụng chế độ xem hoặc chức năng do lỗi liên kết

  4. Lỗi 'không thể tìm thấy báo cáo phụ tại vị trí đã chỉ định. Vui lòng xác minh rằng báo cáo phụ đã được xuất bản và tên là chính xác '

  5. Dấu thời gian trong T-Sql trong C # có nghĩa là gì?