PDO 像 %TIME 一样更新 DATETIME
PDO update DATETIME like %TIME
我正在尝试更新日期时间类型类似于时间但日期可以不同的行。
伪代码:
像 %time
这样更新 startTime 的地方
2019-03-0310:53:33(待更新)
2019-03-03 12:01:23
2019-03-04 10:53:33(待更新)
$startTime = '%10:53:33';
$stmt = $dbh->prepare("UPDATE `table` SET `foo` = '0' WHERE `startTime` LIKE :st ");
$stmt->bindParam(':st', $startTime);
$stmt->execute();
编辑:删除了 strtotime 评论
是否可行或者我应该寻找其他解决方案?如果可行,方法是什么?
假设 startTime
列实际上是一个日期时间,您应该使用 TIME()
函数来提取时间部分:
$startTime = '10:53:33';
$stmt = $dbh->prepare("UPDATE `table` SET `foo` = '0' WHERE TIME(startTime) = :st ");
$stmt->bindParam(':st', $startTime);
$stmt->execute();
所以,我认为您不需要在这里使用 LIKE
,这也不适合日期时间。
我正在尝试更新日期时间类型类似于时间但日期可以不同的行。
伪代码:
像 %time
2019-03-0310:53:33(待更新)
2019-03-03 12:01:23
2019-03-04 10:53:33(待更新)
$startTime = '%10:53:33';
$stmt = $dbh->prepare("UPDATE `table` SET `foo` = '0' WHERE `startTime` LIKE :st ");
$stmt->bindParam(':st', $startTime);
$stmt->execute();
编辑:删除了 strtotime 评论
是否可行或者我应该寻找其他解决方案?如果可行,方法是什么?
假设 startTime
列实际上是一个日期时间,您应该使用 TIME()
函数来提取时间部分:
$startTime = '10:53:33';
$stmt = $dbh->prepare("UPDATE `table` SET `foo` = '0' WHERE TIME(startTime) = :st ");
$stmt->bindParam(':st', $startTime);
$stmt->execute();
所以,我认为您不需要在这里使用 LIKE
,这也不适合日期时间。