簡體   English   中英

SQL轉換日期格式

[英]Sql convert date format

我想將日期格式從mm / dd / yyyy轉換為yyyy / mm / dd。 我想要日期時間格式的輸出。 我試過了

convert(datetime,convert(varchar,getdate(),111),123)

但不起作用。 錯誤是“無法顯式轉換為日期時間”是解決此問題的最佳方法是什么? 我正在使用Sybase。

嘗試這個

選擇convert(varchar,CAST('12 / 11/2010'as DateTime),111)

那行不通。 DATETIME數據類型具有其自己的格式,該格式實際上是自固定參考日期以來經過的時間; 如果您要求一個DATETIME,它將始終按照該格式返回。

如何顯示給最終用戶是客戶端的功能。 您可以使用CONVERT將其轉換為字符串,並指定其在字符串中的顯示格式,但隨后您將返回一個字符串,而不是DATETIME。 您可以將其作為DATETIME(沒有固有的顯示格式)返回,然后由客戶端應用程序或OS定義如何格式化顯示格式。 在客戶端應用程序中,通常還具有格式化功能,可根據您指定的格式顯示日期/時間。 而且,如果您沒有在應用程序中明確指定它,那么日期/時間的顯示通常將由操作系統中的本地化設置來定義。

基本上,數據類型DATETIME與它對最終用戶的表示之間有區別。

格式化是應該在表示層而非數據層中完成的事情。 但是,大多數供應商(如Sybase)都可以進行基本格式化:

Select Cast( Year(GetDate()) As char(4)  )
    + '/' + Right( '00' + Cast( Month(GetDate()) As varchar(2) ), 2 )
    + '/' + Right( '00' + Cast( Day(GetDate()) As varchar(2) ), 2 ) 

試試這個查詢

select (CONVERT(varchar(10), GETDATE(), 120))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM