11

truy vấn mẫu của tôi làCách hiển thị ngày dưới dạng dd/mm/yyyy hh: mm Am/PM bằng máy chủ sql 2008 r2?

SELECT D30.SPGD30_LAST_TOUCH_Y 
from CSPGD30_TRACKING D30 

định dạng ngày tháng đã cho tôi là như "2013-01-01 00:00:00.000". Tôi cần chuyển đổi định dạng ngày này thành "mm/dd/yyyy hh:mm AM/PM". Bạn có bất kỳ ý tưởng về điều đó?

+0

là cột hiện tại của bạn định dạng datetime? – DevelopmentIsMyPassion

+0

@ashreva, có cột hiện tại của tôi là định dạng ngày tháng. Bạn có bất kỳ ý tưởng về điều đó. –

+0

Bản sao có thể có của http://stackoverflow.com/questions/331002/change-default-date-time-format-on-a-single-database-in-sql-server –

Trả lời

22

Tôi nghĩ rằng không có định dạng duy nhất để cung cấp cho họ cả. Hãy thử điều này bằng cách sử dụng Convert; Sql-Demo

declare @mydate datetime = getdate() 
select convert(varchar(10),@mydate, 101) + right(convert(varchar(32),@mydate,100),8) 

|   COLUMN_0 | 
---------------------- 
| 02/22/2013 9:36AM | 
+0

cảm ơn câu trả lời của bạn. –

0

Bạn có thể làm điều đó như thế này:

SELECT CONVERT(VARCHAR(10), GETDATE(), 101) AS [MM/DD/YYYY] 

Để biết thêm thông tin xem xét điều này:

date-format

+0

nếu tôi sử dụng định dạng này, nó chỉ hiển thị "01/01/2013". Thêm vào đó tôi cần "01/01/2013 12:23 PM" –

+0

cảm ơn câu trả lời của bạn –

0

Sử dụng phương pháp convert để định dạng một giá trị datetime. Ví dụ:

select convert(varchar(20), D30.SPGD30_LAST_TOUCH_Y, 101) 

Tham số thứ ba xác định định dạng. Bạn có thể tìm thấy các định dạng có sẵn trong số cast and convert documentation.

+0

cảm ơn bạn đã khéo léo, nhưng nó hiển thị định dạng này "01/01/2013" –

+0

@Adalarasan_Serangulam: Có, hãy kiểm tra tài liệu về các định dạng sẵn có. – Guffa

1

Sử dụng này

select CONVERT(VARCHAR(10), mydate, 101) + ' ' + RIGHT(CONVERT(VARCHAR, mydate, 100), 7) from tablename 
1

Hãy thử điều này

SELECT convert(varchar(20), GetDate(), 0); 

Để trích xuất chỉ AM/PM

substring(convert(varchar(30), GetDate(), 9), 25, 2); 

Fiddle

0

Sử dụng kịch bản sau đây để nhận ngày, giờ, ngày, m onth, năm, giờ, phút, giây, AM/PM

:)

SELECT UpdatedOn , 
    CONVERT(varchar,UpdatedOn,100) DateTime, 
    CONVERT(varchar,UpdatedOn,10) Date , 
    CONVERT(varchar,UpdatedOn,108) Time , 
    substring(CONVERT(varchar,UpdatedOn,106),1,2) Day, 
    substring(CONVERT(varchar,UpdatedOn,106),4,3) CMonth, 
    substring(CONVERT(varchar,UpdatedOn,105),4,2) NMonth, 
    substring(CONVERT(varchar,UpdatedOn,106),8,4) Year, 
    left(right(CONVERT(varchar,UpdatedOn,100),7),2) Hours_12, 
    substring(CONVERT(varchar,UpdatedOn,108),1,2) Hours_24, 
    substring(CONVERT(varchar,UpdatedOn,108),4,2) Minutes, 
    substring(CONVERT(varchar,UpdatedOn,108),7,2) Second, 
    right(CONVERT(varchar,UpdatedOn,100),2) AM_PM 
FROM dbo.DeviceAssignSim 
WHERE AssignSimId=55; 
+1

Trong khi điều này có thể trả lời câu hỏi, nó không phải là một giải pháp tuyệt vời do nó thiếu ngắn gọn. Các câu trả lời khác đều súc tích hơn và trả lời câu hỏi. – jason

+0

có giải pháp đơn giản hơn cho điều này - làm thế nào tôi có thể sử dụng nó trong một truy vấn lớn – BobSki

5

Bạn có thể sử dụng select FORMAT(@date,'MM/dd/yyyy hh:mm:s tt')

+0

Không có trong SQL Server 2008 R2 - Chức năng định dạng không được xác định. – csmith