2014-05-23 22 views
5

Tôi đang cố gắng chuyển chức năng MySQL DATE_FORMAT(date,'%y-%m-%d %h:%i:%s %p') thành MsSQL tương đương bằng cách sử dụng CONVERT().
Cách định dạng chuỗi ngày giờ tương đương trong SQL SERVER 2012 để cung cấp đầu ra này '2014-05-24 01:24:37 AM'?Cách định dạng datetime trong SQL SERVER

+0

Mở lại khi SQL Server 2012 có chức năng 'định dạng' không có trong năm 2008. –

Trả lời

13

Trong SQL Server 2012 và lên bạn có thể sử dụng FORMAT():

SELECT FORMAT(CURRENT_TIMESTAMP, 'yyyy-MM-dd hh:mm:ss tt') 

Trong các phiên bản trước, bạn có thể cần phải nối hai hoặc khác nhau nhiều chuyển đổi datetime để có được những gì bạn cần, ví dụ:

SELECT 
    CONVERT(CHAR(10), CURRENT_TIMESTAMP, 23) + ' ' + 
    RIGHT('0' + LTRIM(RIGHT(CONVERT(CHAR(20), CURRENT_TIMESTAMP, 22), 11)), 11); 

Xem phần Kiểu ngày và giờ của CAST and CONVERT (Transact-SQL) cho tất cả các kiểu định dạng được tích hợp sẵn.


tôi sẽ ghi nhớ rằng trừ khi bạn có lý do chính đáng cho nó, tôi muốn nói một lý do thực sự tốt, định dạng thường là một công việc tốt hơn cho công nghệ hiển thị dữ liệu.

+0

Cảm ơn, điều này đã giúp ích. – Ankit

+0

Tôi khá chắc chắn rằng ví dụ được đưa ra sẽ không hoạt động - bạn cần phải đặt tháng trong thủ đô: 'yyyy-MM-dd'. –

+0

@Andy, tôi nghĩ bạn hoàn toàn chính xác! Tôi sẽ sửa nó, cảm ơn. –

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