LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 932|回复: 4

select日期的问题。

[复制链接]
发表于 2003-6-14 20:28:04 | 显示全部楼层 |阅读模式
  1. mysql> select * from event where date;
  2. +------------+------+----------+
  3. | date       | type | event_id |
  4. +------------+------+----------+
  5. | 2003-06-12 | Q    |        1 |
  6. | 2003-06-11 | Q    |        2 |
  7. | 2003-06-12 | T    |        3 |
  8. | 2003-06-13 | Q    |        4 |
  9. | 1999-09-09 |      |      100 |
  10. | 1999-09-10 |      |      101 |
  11. | 1999-09-11 |      |      102 |
  12. | 1999-09-12 |      |      103 |
  13. +------------+------+----------+
  14. 8 rows in set (0.00 sec)
复制代码



偶然的一次错误的输入,把date='1999-9-8'搞成了date='1999-9-*'
出现以下结果。why
  1. mysql> select * from event where date='1999-9-*';
  2. +------------+------+----------+
  3. | date       | type | event_id |
  4. +------------+------+----------+
  5. | 0000-00-00 |      |       99 |
  6. | 0000-00-00 | T    |       98 |
  7. | 0000-00-00 | Q    |       97 |
  8. +------------+------+----------+
  9. 3 rows in set (0.01 sec)
复制代码
 楼主| 发表于 2003-6-15 10:40:04 | 显示全部楼层
日期是default的值,可为什么显示三个,
而且event_id的值是我create的表中没有的。
发表于 2003-6-16 07:58:15 | 显示全部楼层
您这个语句我有点看不懂,
为什么会出现这样的结果呢?真是令人感到费解,能不能讲一下你的数据库系统是什么?然后说说你的意思,
就这个语句来说:mysql> select * from event where date; 它既不能排序,也不能选择条件。实在是有点想不通,这是什么意思。
而下面的句子:mysql> select * from event where date='1999-9-*';
如果你要选择某一月的东东,最有效的办法是用如下这个语句。它肯定不会出错:
SELECT * FROM event WHERE  YAER(date) = '年'   AND MONTH(date)='月'.
发表于 2003-6-16 17:52:56 | 显示全部楼层
oracle的sql语句是select * from  table where date_='xx-xx-xx';
date_是日期字段
发表于 2003-6-17 07:53:52 | 显示全部楼层
对呀。应该是象老兄这么写才不会有二义的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表