2011-02-24 197 views
1

我想將dateformat從mm/dd/yyyy轉換爲yyyy/mm/dd。我想以日期時間格式輸出。 我想這Sql轉換日期格式

轉換(日期時間,轉換(VARCHAR,GETDATE(),111),123)

,但不起作用。錯誤是「顯式轉換爲datetime不可用」 解決此問題的最佳方法是什麼?我正在使用Sybase。

+0

什麼樣的服務器? Mssql,postgresql,mysql,oracle等日期時間是重要的信息。 – 2011-02-24 22:18:06

回答

1

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

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

基本上,數據類型--DATETIME - 及其對最終用戶的表示之間存在差異。

3

試試這個

選擇轉換(VARCHAR,CAST('12/11/2010' 的日期時間),111)

0

嘗試此查詢

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

格式是應該在表示層而不是數據層來完成。但是,大多數供應商(如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)