Bry*_*yan 0 mysql validation datetime
任何人都可以帮我解决MySQL如何读取我尝试执行此查询的行.
SELECT * FROM attendance where '2010-07-13 00:06:00' BETWEEN timein AND timeout;
Run Code Online (Sandbox Code Playgroud)
这是表格中的日期:
+-----------------------+-----------------------+
| timein | timeout |
------------------------+------------------------
| 2010-07-13 23:44:11 | 2010-07-14 08:01:14 |
| 2010-07-12 23:40:56 | 2010-07-13 08:00:52 |
| 2010-07-10 05:49:32 | 2010-07-10 14:00:45 |
+-----------------------+-----------------------+
Run Code Online (Sandbox Code Playgroud)
正如我们在表中看到的那样,第2行应该符合日期验证,但是当我执行查询时,它不返回任何结果.如果有替代查询可以帮助任何人.
你的查询没问题.它应该按预期工作:
CREATE TABLE attendance (id int, timein datetime, timeout datetime);
INSERT INTO attendance VALUES (1, '2010-07-13 23:44:11', '2010-07-14 08:01:14');
INSERT INTO attendance VALUES (2, '2010-07-12 23:40:56', '2010-07-13 08:00:52');
INSERT INTO attendance VALUES (3, '2010-07-10 05:49:32',' 2010-07-10 14:00:45');
SELECT * FROM attendance where '2010-07-13 00:06:00' BETWEEN timein AND timeout;
+------+---------------------+---------------------+
| id | timein | timeout |
+------+---------------------+---------------------+
| 2 | 2010-07-12 23:40:56 | 2010-07-13 08:00:52 |
+------+---------------------+---------------------+
1 row in set (0.01 sec)
Run Code Online (Sandbox Code Playgroud)
你确定你timein和timeout字段类型datetime或timestamp?
更新:继@ Psytronic的建议下面的评论,如果您的字段varchar类型如下,您的示例甚至可以工作:
CREATE TABLE attendance (id int, timein varchar(100), timeout varchar(100));
INSERT INTO attendance VALUES (1, '2010-07-13 23:44:11', '2010-07-14 08:01:14');
INSERT INTO attendance VALUES (2, '2010-07-12 23:40:56', '2010-07-13 08:00:52');
INSERT INTO attendance VALUES (3, '2010-07-10 05:49:32',' 2010-07-10 14:00:45');
SELECT * FROM attendance where '2010-07-13 00:06:00' BETWEEN timein AND timeout;
+------+---------------------+---------------------+
| id | timein | timeout |
+------+---------------------+---------------------+
| 2 | 2010-07-12 23:40:56 | 2010-07-13 08:00:52 |
+------+---------------------+---------------------+
1 row in set (0.00 sec)
Run Code Online (Sandbox Code Playgroud)
但是你的字段不应该是varchar,因为上面将进行字符串比较而不是时间比较.
| 归档时间: |
|
| 查看次数: |
520 次 |
| 最近记录: |