mysql 的日期和字符串的疑问

MySql 码拜 8年前 (2016-02-09) 1021次浏览
表结构如下:

mysql> desc orders;
+--+--+--+--+--+--+
| Field      | Type     | Null | Key | Default | Extra          |
+--+--+--+--+--+--+
| order_num  | int(11)  | NO   | PRI | NULL    | auto_increment |
| order_date | datetime | NO   |     | NULL    |                |
| cust_id    | int(11)  | NO   | MUL | NULL    |                |
+--+--+--+--+--+--+
3 rows in set (0.02 sec)

order_date 字段是datetime类型,但是datetime怎么会跟字符串匹配成功?

mysql> select * from orders where order_date="2005-09-01 00:00:01";
+--+--+--+
| order_num | order_date          | cust_id |
+--+--+--+
|     20005 | 2005-09-01 00:00:01 |   10001 |
+--+--+--+
1 row in set (0.00 sec)

莫非不应该是如下这样吗:

mysql> select * from orders where order_date=str_to_date("2005-09-01 00:00:01","%Y-%m-%d %H:%i:%s");
+--+--+--+
| order_num | order_date          | cust_id |
+--+--+--+
|     20005 | 2005-09-01 00:00:01 |   10001 |
+--+--+--+
1 row in set (0.00 sec)

新手,比较困惑,谢谢各位了

解决方案

40

MySQL中日期常量就是用字符串来表示。MYSQL会自动对数据进行类型隐式转换。

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明mysql 的日期和字符串的疑问
喜欢 (0)
[1034331897@qq.com]
分享 (0)