2011-09-12 97 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;