2012-06-12 61 views
1

我知道如何使用CONVERT函數在SELECT語句來更改日期列的格式:如何設置的日期格式在SQL Server中的SELECT語句的結果

SELECT 
     StationID 
     , CONVERT(varchar, [Date], 101) as Date 
     , Value 
    FROM my_table 

但我在想,如果我可以設置在一般的日期格式運行SELECT語句,當我沒有在下面的SELECT語句知道日期列名前:

SELECT * from FROM my_table 

是任何SET語句或其他T-SQL,我可以在我的SELECT語句之前運行,以便我可以暫時更改日期格式?

謝謝

+3

爲什麼在不知道列名的情況下編寫代碼?請閱讀:http://sqlblog.com/blogs/aaron_bertrand/archive/2009/10/10/bad-habits-to-kick-using-select-omitting-the-column-list.aspx –

+0

原因是SQL語句在用戶選擇一個選項時動態生成。如果我想要識別列名,我必須設置一個大的「if」語句列表來查找用戶選擇哪個選項。 – Fred

回答

4

特別是,你選擇實際上並沒有格式化的一切,但任何日期列,而不是返回沿着電線作爲其中用於二進制「格式」實際片日期數據日期。如果你看到它們被格式化,這是因爲你的客戶(管理工作室或其他工具)正在將它們轉換爲字符串來顯示。

當您使用SELECT *,顯然有沒有辦法告訴SQL服務器上做任何特定列任何轉換,因此該數據會在任何數據類型的基礎查詢返回的要返回。因此,無論您的數據類型是否真的是日期,無論如何不會有任何操作發生。

3

我很確定沒有辦法做你在問什麼。然而,也有辦法,當你使用輸出你的編程語言是格式化日期字符串。

相關問題