2009-07-16 86 views
38

Điều này không yêu cầu cách chuyển đổi chuỗi tùy ý thành datetime trong MSSQL chẳng hạn như this question.SQL Server chuyển đổi chuỗi thành datetime

Tôi có thể kiểm soát định dạng chuỗi nhưng tôi muốn biết cú pháp MSSQL là gì để cập nhật trường ngày giờ bằng chuỗi ngày tháng.

Trả lời

17

Ví dụ bạn có thể sử dụng

update tablename set datetimefield='19980223 14:23:05' 
update tablename set datetimefield='02/23/1998 14:23:05' 
update tablename set datetimefield='1998-12-23 14:23:05' 
update tablename set datetimefield='23 February 1998 14:23:05' 
update tablename set datetimefield='1998-02-23T14:23:05' 

Bạn cần phải cẩn thận về trật tự/tháng ngày vì đây sẽ là ngôn ngữ phụ thuộc khi năm không được xác định đầu tiên. Nếu bạn chỉ định năm đầu tiên thì không có vấn đề gì; ngày đặt hàng sẽ luôn là ngày-tháng-ngày.

+3

+1 cho yyyy-MM-dd :) – Thorarin

+5

- 1. Năm đầu tiên không đảm bảo y-m-d. SET LANGUAGE british GO CHỌN CAST ('2009-02-28' AS datetime), CAST ('2009-02-28 01:02:03' AS datetime) - không thành công – gbn

+2

Bạn phải sử dụng "ngày" và SQL Server 2008 trước khi yyyy-mm-dd hoạt động. – gbn

97
UPDATE MyTable SET MyDate = CONVERT(datetime, '2009/07/16 08:28:01', 120) 

Đối với một cuộc thảo luận đầy đủ của CAST và CONVERT, bao gồm các tùy chọn định dạng ngày tháng khác nhau, xem MSDN Library liên kết dưới đây:

https://docs.microsoft.com/en-us/sql/t-sql/functions/cast-and-convert-transact-sql

+1

+1 cho liên kết. Rất hữu ích. –

+1

+1 để trả lời câu hỏi tôi đã tìm kiếm, mặc dù đó không phải là câu hỏi của OP :) – Kalessin

Các vấn đề liên quan