0

我有一个 cloclin 程序,其中 studnets 被打卡进出。如果一个学生在一天结束时没有在下午 6:30 打卡,我有一个 mysql 语句,它会在下午 6:30 自动执行和打卡学生,以帮助保持桌子清洁。

当学生打卡进入系统时,它会用正确的时间填充开始时间,而结束时间则保留为“0000-00-00 00:00:00”。我很难确定 sql 语句来检测空的 EndTime 字段以确定它是否为空白。由于默认情况下,表格将空白日期字段列为 0000-00-00 00:00:00”,因此我用于更新字段的 CONCAT 方法在更新字段时似乎有效,但无法确定标准“WHERE”

我当前的sql语句是

$sql = "UPDATE `daycare attendance table` SET EndTime = CONCAT('1899-12-30 ', '18:30:00') WHERE EndTime = CONCAT('0000-00-00 ', '00:00:00')";

我也试过

$sql = "UPDATE `daycare attendance table` SET EndTime = CONCAT('1899-12-30 ', '18:30:00') WHERE EndTime = ''";

$sql = "UPDATE `daycare attendance table` SET EndTime = CONCAT('1899-12-30 ', '18:30:00') WHERE EndTime IS NULL";

该脚本只是错误为

Warning: mysql_db_query(): supplied argument is not a valid MySQL-Link resource in...

有什么帮助吗?

4

1 回答 1

0

由于它每天运行,你可以说where end_time < now() - INTERVAL 24 HOUR and start_time >= now() - INTERVAL 24 HOUR;

好的,使用时间戳为您更新了一个示例小提琴 -> http://sqlfiddle.com/#!2/bbdfe/1

最好的办法可能是将默认值从对时间戳字段无效的“0000-00-00 00:00:00”更改为有效时间 -> 1970+,然后您的所有问题都会消失。

于 2013-08-21T22:12:36.203 回答