我敢肯定这很简单,但是我已经坚持了一段时间。如何在SQL中将varchar字段(YYYYMM)转换为日期(MM / 01 / YY)?
谢谢。
编辑:我使用的是Open Office Base(HSQL),而不是MySQL;对困惑感到抱歉。
最佳答案
使用STR_TO_DATE:
从mysql.com:
STR_TO_DATE(str,format)
这是DATE_FORMAT()函数的反函数。它采用字符串str和格式字符串格式。如果格式字符串同时包含日期和时间部分,则STR_TO_DATE()返回DATETIME值;如果字符串仅包含日期或时间部分,则返回DATE或TIME值。
str中包含的日期,时间或日期时间值应以format指示的格式给出。有关可以使用格式的说明符,请参见DATE_FORMAT()函数说明。如果str包含非法的日期,时间或日期时间值,则STR_TO_DATE()返回NULL。从MySQL 5.0.3开始,非法值也会产生警告。
日期部分的范围检查如第11.3.1节“ DATETIME,DATE和TIMESTAMP类型”中所述。例如,这意味着允许“零”日期或部分值为0的日期,除非将SQL模式设置为不允许此类值。
mysql> SELECT STR_TO_DATE('00 / 00/0000','%m /%d /%Y');
->'0000-00-00'
mysql> SELECT STR_TO_DATE('04 / 31/2004','%m /%d /%Y');
->'2004-04-31'
关于sql - 如何在SQL中将varchar字段(YYYYMM)转换为日期(MM/01/YY)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6583242/