自定义函数脚本CREATE DEFINER=`root`@`%` FUNCTION `to_ymd`(`datetime` char(19)) RETURNS date
BEGIN
#Routine body goes here...
RETURN str_to_date(datetime, '%m/%d/%Y');
END
调用该函数select to_ymd('12/21/2010 13:55:37');
可是结果为空,应该返回2010-12-21才对。
BEGIN
#Routine body goes here...
RETURN str_to_date(datetime, '%m/%d/%Y');
END
调用该函数select to_ymd('12/21/2010 13:55:37');
可是结果为空,应该返回2010-12-21才对。
-> RETURN str_to_date(datetime, '%m/%d/%Y');
Query OK, 0 rows affected (0.13 sec)mysql>
mysql> select to_ymd('12/21/2010 13:55:37');
+-------------------------------+
| to_ymd('12/21/2010 13:55:37') |
+-------------------------------+
| 2010-12-21 |
+-------------------------------+
1 row in set, 1 warning (0.03 sec)mysql>
mysql> select to_ymd('02/12/2011 12:15:41');
Empty set
mysql> show create function to_ymd;
+----------+----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------+----------------------+--------------------+
| Function | sql_mode | Create Function | character_set_client | collation_connection | Database Collation |
+----------+----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------+----------------------+--------------------+
| to_ymd | STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION | CREATE DEFINER=`root`@`localhost` FUNCTION `to_ymd`(`dt` char(19)) RETURNS date
BEGIN
#Routine body goes here...
RETURN str_to_date(`dt`,'%m/%d/%Y');
END | utf8 | utf8_general_ci | utf8_general_ci |
+----------+----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------+----------------------+--------------------+
1 row in setmysql> 你的MySQL版本是多少?我已经找到解决办法了,把str_to_date(`dt`,'%m/%d/%Y')改成str_to_date(`dt`,'%m/%d/%Y %H:%i:%s')结果就出来了。
+------------------+
| version() |
+------------------+
| 5.1.52-community |
+------------------+
1 row in set (0.00 sec)mysql>