基于空日期字段更新mysql中的日期格式

时间:2013-08-21 20:41:06

标签: mysql

我有一个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...

任何帮助?

1 个答案:

答案 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年以后,你所有的问题都将消失。