我有一个cloclin程序,其中studnet进出。如果学生在当天下午6:30之前没有出来,我会自动执行一个mysql语句,并在下午6:30自动为学生提供时间表,以帮助保持桌子清洁。
当学生进入系统时,它会以适当的时间填充开始时间,结束时间保留为“0000-00-00 00:00:00”。我很难确定sql语句来检测emtpty 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...
任何帮助?
答案 0 :(得分:0)
由于它每天运行,您可以说where end_time < now() - INTERVAL 24 HOUR and start_time >= now() - INTERVAL 24 HOUR;
好的,使用时间戳更新了一个示例小提琴 - &gt; http://sqlfiddle.com/#!2/bbdfe/1
最好的办法是将默认值从'0000-00-00 00:00:00'更改为对时间戳字段无效的有效时间 - &gt; 1970年以后,你所有的问题都将消失。