2011-04-06 136 views
0

在表中我有一个存储的字符串列“MM/DD/YYYY HH:MM:SS”,我正在查询返回“MM/DD/YYYY“部分。MySQL:SQL查询从日期/时间戳返回日期列

任何想法?

+1

@ user693121 - 这是MS SQL SERVER? – 2011-04-06 14:35:00

+0

是的。并且事实证明这是DATETIME字段而不是字符串 – Demasterpl 2011-04-06 14:54:24

回答

3

如果列类型是charvarchar,然后

SELECT LEFT(colname, 10)

就足够了。 如果它是一个datetime类型,然后尝试

SELECT DATE_FORMAT(colname , "%d/%m/%Y")

+0

DATE_FORMAT'不是公认的内置函数名称:( – Demasterpl 2011-04-06 14:51:25

+0

DATE_FORMAT'确实是MySQL函数,您必须添加了额外的引号或其他内容 – 2011-04-06 15:02:41

+0

DATE_FORMAT不是与Microsoft SQL 2005兼容。尝试使用“CONVERT(VARCHAR(10),列,101)AS [MM/DD/YYYY]”的变体,但VARCHAR和CHAR也不能识别。 – Demasterpl 2011-04-06 17:51:51

0

我认为你可以使用子!

SELECT SUBSTRING(TimeStamp,7,10);

0

,如果它是一个字符串使用SUBSRT()LEFT()提取所需的部分,但是这将是明智的,有它存储为DATATIME型

1

你应该使用MySQL的日期时间字段,而不是一个字符串字段,真的。这将允许您应用日期和时间函数,这在处理时态数据时有很大的帮助。因为你的数据是一个字符串类型,而不是MySQL Isodate格式(YYYY-MM-DD),所以你只能使用字符串函数,如SUBSTRING()和它的专门化(LEFT,...)。 )。

http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html 日期和时间功能概述

http://dev.mysql.com/doc/refman/5.5/en/string-functions.html 字符串函数

+0

原来他们是DATETIME字段。我会申请什么? – Demasterpl 2011-04-06 14:47:30