rin*_*t.6 27 mysql sql casting date
我试图了解在MySQL中为DATE类型转换值的原因.以下是我尝试过的一些事情:
SELECT CAST('3' AS DATE);
-- null
SELECT CAST(3 AS DATE);
-- null
SELECT CAST('2014-07-01 19:00:01' AS DATE);
-- 2014-07-01
SELECT DATE('2014-07-01 19:00:01');
-- 2014-07-01
SELECT CAST('2014-07-01' AS DATE);
-- 2014-07-01
SELECT DATE('2014-07-01');
-- 2014-07-01
SELECT CAST('2014-07-50' AS DATE);
-- null
SELECT DATE('2014-07-50');
-- null
SELECT DATE(''), CAST('' AS DATE), DATE(0), CAST(0 AS DATE);
-- null, null, 0000-00-00, 0000-00-00
Run Code Online (Sandbox Code Playgroud)
我尝试的所有内容似乎都将其转换为null无效或者返回字符串的日期部分(如果它是有效日期).我甚至尝试过斜杠和其他格式的日期,结果相同.
使用该DATE(expr)功能和使用该功能有什么区别CAST(expr AS DATE)?
DATE(expr):提取日期或日期时间表达式expr的日期部分.
CAST(expr AS type):该CAST()函数采用任何类型的表达式并生成指定类型的结果值,类似于CONVERT()
同样,可以询问有关TIME(expr)和时间的相同问题CAST(expr AS TIME).
Iva*_*ari 32
检查MySQL 5.6的源代码CAST()并CONVERT()调用相同的内部函数 Item_date_typecast,也DATE()调用 Item_date_typecast.
总之,功能和功能之间没有区别.DATE(expr)CAST(expr AS DATE)
参考文献:
https://github.com/mysql/mysql-server/blob/5.6/sql/sql_yacc.yy
https://github.com/mysql/mysql-server/blob/5.6/sql/item_create.cc
| 归档时间: |
|
| 查看次数: |
52158 次 |
| 最近记录: |