我正在使用MAMP的phpMyAdmin作为我的数据库。 我在使用CONVERT sql函数时遇到了麻烦。这是一个常见的问题吗?
SELECT CONVERT(varchar(10), Date, 103)
这会给我以下语法错误。这是给出的常见错误之一,但我一直在尝试很多不同的方式。
#1064 - 您的SQL语法出错;检查与MySQL服务器版本对应的手册,以获得正确的语法 在'varchar(10),Date,103)附近'第1行
如果无法解决上述问题,我可以通过添加具有特定日期格式样式的新列来绕过此问题吗?
答案 0 :(得分:2)
您正尝试在sql-server数据库中使用mysql语法。
mysql没有CONVERT
函数的第三个参数。
CONVERT(expr,type),CONVERT(expr USING transcoding_name)
CONVERT()和CAST()函数采用任何类型的表达式 生成指定类型的结果值。
http://dev.mysql.com/doc/refman/5.0/en/cast-functions.html#function_convert
要在mysql中获取相同的格式,您需要使用DATE_FORMAT()
函数
这应该给你相同的结果DATE_FORMAT(date,'%d/%m/%Y')
http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_date-format
select DATE_FORMAT(Current_Date(),'%d/%m/%Y')
这里是SQL Fiddle http://sqlfiddle.com/#!2/d41d8/36014
答案 1 :(得分:1)
这取决于你想做什么。
如果您尝试将表示Unix时间戳的整数转换为使用MySQL的日期,您可能需要使用FROM_UNIXTIME()
另请参阅:MySQL: Convert INT to DATETIME
如果您尝试将代表日期的字符串转换为日期,则可以使用STR_TO_DATE()
之后,如果您对该日期执行某些处理并希望将其转换回字符串,则您需要DATE_FORMAT()
答案 2 :(得分:1)
日期格式正确但存储为
varchar(10)
当前状态如下:21/04/2014
是的,我有一个列有日期但是设置为varchar,因为它现在没有被使用我需要将它们转换为日期。
如果您想从字符串形式的日期中获取日期表单,那么
select str_to_date( date_column, '%d/%m/%Y' ) as date from table_name
这会将21/04/2014
作为2014-04-21
,MySQL
中的常规默认日期格式返回。