2013-10-18 60 views
1

假設我在我的SQL Server數據庫中有以下日期格式:3/2007但是當我嘗試通過CFML腳本獲取數據時,我得到了這種更改格式2007-03-31 00:00:00.0,我的腳本看起來像這樣:CFML SQL查詢修改表格中的原始日期格式

<cfquery name="header" datasource="mydb"> 
SELECT 
    ExpDate 
FROM 
    myTable 
</cfquery> 

<CFOUTPUT>ExpDate</CFOUTPUT> 
<cfloop query="header"> 
<CFOUTPUT>#ExpDate#</cfoutput> 
</cfloop> 

任何想法爲什麼我的日期格式被改變?謝謝!

+0

* RE:我在我的SQL Server數據庫中有以下日期格式:3/2007 *。列'datetime'或'varchar'?如前所述,'datetime'值不會以這種方式存儲。 SQL Server實際上[在內部將日期時間值存儲爲數字](http://technet.microsoft.com/zh-cn/library/aa258277%28v=SQL.80%29.aspx)。 * RE:我得到這種改變的格式2007-03-31 00:00:00.0 *這是CF在將日期時間值顯示爲字符串時使用的默認格式。如果你想要一個不同的格式,使用'DateFormat(theDateTimeColumn,mask)'(正如你想象的那樣)。注意:這裏不需要'ParseDateTime'。這是多餘的。 – Leigh

回答

1

日期不以任何格式存儲在SQL Server中。客戶端應用程序格式日期。

您可以按照以下方式修改您的查詢,以得到需要格式的值爲varchar的日期值。

SELECT 
    RIGHT(CONVERT(varchar(12),ExpDate,103),7) ExpDate 
FROM 
    myTable 
+0

那麼現在我在試圖輸出時在腳本中出現這個錯誤:'變量EXPDATE未定義。' – bsteo

+0

@xtmtrx我忘記了指定字段的別名。請看,我剛剛編輯它的答案。 –

+0

哦,謝謝!無論如何,我發現CFML'#DateFormat(ParseDateTime(ExpDate),「mm/yyyy」)的另一種方式# – bsteo