我继承了一个数据库,它有一个真正应该是 DATE 的 VARCHAR 列。没有对表单进行检查(我需要修复它),因此日期不断输入为 2016-12-4 而不是 2016-12-04 等等。
我很确定历史上有很多错误的日期,所以我对将数据类型更改为 DATE 有点怀疑,但我很好奇改变它的好策略是什么?
背景:(我是前端开发人员,不是 DBA,所以虽然我可以在 SQL 中四处走动,但我不知道我不知道的东西,而且我总是害怕我会犯一个错误,这会破坏数据库)。
我已经到处搜索了,我似乎只找到了如何获取单个日期在两个“外部”日期之间的记录。
我想了解如何选择当前日期介于 startDate 字段中的值和 endDate 字段中的值之间的记录。
到目前为止我所拥有的(PHP):
$now = new DateTime();
$sql = "
SELECT content, image, imageHeight, imageWidth, link, linkDescription
FROM news
WHERE appearanceDate < $now
AND $now < termDate
ORDER BY appearanceDate DESC
";
Run Code Online (Sandbox Code Playgroud)
但它不起作用。