2011-09-12 126 views
1

我試圖記住將日期字段更改爲字符串的語法。我知道我很接近但並非100%正確。這是我到目前爲止使用的:TO_CHAR(FIELD_NAME)。我正在使用Access數據庫。我得到的錯誤是:undefined expression。任何幫助將非常感激。SQL語法問題

+4

您正在使用哪種RDBMS? –

+0

它有助於確切指定您正在使用的SQL實現。 Microsoft SQL,DB2,MySql,Postgres或其他完全不同的東西。 – Caimen

+2

@Joe _Im使用訪問數據庫_看起來像訪問我... –

回答

3

二者必選其一CStr(dateField)Format(dateField)轉換。 此外,您可以將參數添加到Format()顯示它在不同的格式,如:

Format(dateField, "general date") 9/12/2010
Format(dateField, "long date") Monday, September 12, 2011

+0

+1好的編輯我會早些投票,但由於某種原因,我不能;)。 –

+0

謝謝。我編輯了3次這樣的答案,刪除了它,然後一旦我理解了它就復活了。 – adamcodes

+0

嗯我想這些編輯是在寬限期內,他們不出現在[修訂歷史](http://stackoverflow.com/posts/7392873/revisions);) –

-1

您可以使用轉換功能,如:

CONVERT(VARCHAR, DateField, 100) 

這裏有一個鏈接,顯示您可以使用不同的日期格式:

http://www.sql-server-helper.com/tips/date-formats.aspx

+0

在SQL Server中使用to_char會導致像'Msg 195,Level 15,State 10,Line 1'to_char'不是一個公認的內置函數名稱.'不是'未定義的表達式'。此外,問題是明確的關於所使用的技術 –

+0

@Conrad Frix:我沒有使用TO_CHAR,我正在轉換爲VARCHAR ...你有沒有downvote錯誤的答案? –

+0

@Conrad Frix:已測試 - 不會產生錯誤。結果是:'2010年4月19日上午9點30分' –

1

假設你正在使用的MS Access和日期字段你可能不只是希望轉換爲字符串,但也格式化日期。如果確實如此,您需要格式化功能

SELECT Format ([DateCreate], "yyyy/mm/dd") AS Foo 
FROM MSysObjects;