MySQL:获取创建日期字符串比给定日期字符串更新的行
MySQL: Get rows with creation date string newer than given date string
我正在尝试使用以下代码创建准备好的语句:
$statement = $db->prepare("SELECT * FROM myTable WHERE
STR_CMP(creationDate, $startingDate) = 1 ORDER BY creationDate DESC ");
我也试过这个:
$statement = $db->prepare("SELECT * FROM myTable WHERE
(creationDate > $startingDate) = 1 ORDER BY creationDate DESC ");
但我得到的是空 $statement
。我的目标是获取其创建日期比给定日期字符串更新的行。我的 creationDate
列存储为字符串。
我已经记录了我的查询字符串,它看起来像:
SELECT * FROM myTable WHERE (creationDate > 05.02.2015 14:08:31) = 1 ORDER BY creationDate DESC
我做错了什么?
1) 你必须比较日期。
SELECT * FROM myTable WHERE
DATE_FORMAT(STR_TO_DATE(creationDate, '%d.%m.%Y %H:%i:%s'),'%d.%m.%Y %H:%i:%s')
> '.$startingDate.' ORDER BY creationDate DESC
小贴士
2) 在数据库中将日期存储为日期而不是字符串
3) 您的日期字符串似乎无效?
为什么不是 YYYYMMDD。
ORDER BY creationDate DESC
可能会产生意想不到的结果
我已经通过在数据库的 phpMyAdmin
sql 查询部分尝试查询字符串解决了我的问题。当我像这样构建查询时,我已经意识到:
$statement = $db->prepare("SELECT * FROM myTable WHERE
(creationDate > $startingDate) = 1 ORDER BY creationDate DESC ");
变成:
SELECT * FROM myTable WHERE (creationDate > 05.02.2015 14:08:31) = 1
ORDER BY creationDate DESC
和 MySql
给出 05.02.2015 14:08:31
的错误
所以我准备了这样的声明:
$queryString = 'SELECT * FROM arendi_ideas WHERE (creationDate > "'.$startingDate.'") = 1 ORDER BY creationDate DESC';
$this->logger->debug("GetIdeasNewerThan: Query string = $queryString");
$this->statement = $this->db->prepare($queryString);
而且效果很好。
我正在尝试使用以下代码创建准备好的语句:
$statement = $db->prepare("SELECT * FROM myTable WHERE
STR_CMP(creationDate, $startingDate) = 1 ORDER BY creationDate DESC ");
我也试过这个:
$statement = $db->prepare("SELECT * FROM myTable WHERE
(creationDate > $startingDate) = 1 ORDER BY creationDate DESC ");
但我得到的是空 $statement
。我的目标是获取其创建日期比给定日期字符串更新的行。我的 creationDate
列存储为字符串。
我已经记录了我的查询字符串,它看起来像:
SELECT * FROM myTable WHERE (creationDate > 05.02.2015 14:08:31) = 1 ORDER BY creationDate DESC
我做错了什么?
1) 你必须比较日期。
SELECT * FROM myTable WHERE
DATE_FORMAT(STR_TO_DATE(creationDate, '%d.%m.%Y %H:%i:%s'),'%d.%m.%Y %H:%i:%s')
> '.$startingDate.' ORDER BY creationDate DESC
小贴士
2) 在数据库中将日期存储为日期而不是字符串
3) 您的日期字符串似乎无效? 为什么不是 YYYYMMDD。
ORDER BY creationDate DESC
可能会产生意想不到的结果
我已经通过在数据库的 phpMyAdmin
sql 查询部分尝试查询字符串解决了我的问题。当我像这样构建查询时,我已经意识到:
$statement = $db->prepare("SELECT * FROM myTable WHERE
(creationDate > $startingDate) = 1 ORDER BY creationDate DESC ");
变成:
SELECT * FROM myTable WHERE (creationDate > 05.02.2015 14:08:31) = 1
ORDER BY creationDate DESC
和 MySql
给出 05.02.2015 14:08:31
所以我准备了这样的声明:
$queryString = 'SELECT * FROM arendi_ideas WHERE (creationDate > "'.$startingDate.'") = 1 ORDER BY creationDate DESC';
$this->logger->debug("GetIdeasNewerThan: Query string = $queryString");
$this->statement = $this->db->prepare($queryString);
而且效果很好。