2013-08-21 55 views
0

我有一个cloclin程序,其中studnets是进出时钟。如果一个学生在一天结束时没有在下午6点30分钟出去,我有一个mysql语句,自动执行并在下午6点30分给学生发送时钟,以帮助保持表格清洁。根据空日期字段在mysql中更新日期格式

当学生进入系统时,它会在适当的时间填充开始时间,结束时间保留为“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

可能重复[Warning:mysql \ _query():3不是有效的MySQL链接资源](http://stackoverflow.com/questions/2851420/warning-mysql-query-3-is-not-一个有效的MySQL的链接资源) – NotMe

回答

0

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

好吧,更新的样本拨弄你使用时间戳 - >http://sqlfiddle.com/#!2/bbdfe/1

Probly做的最好的事情是改变从“默认0000- 00-00 00:00:00',这对于时间戳字段无效至有效时间 - > 1970+,所有问题都将消失。

+0

也许你也可能会发现这个使用小提琴:http://sqlfiddle.com/#!2/d3b04/3 –

+0

或者这一个,如果你真的想null:http:// sqlfiddle.com/#!2/40982d/1 –

+0

这是不会工作,因为如果将更新每个有EndTime列出的记录,因为所有EndTimes将