1

我正在尝试获取不应在当前日期之前显示数据的数据。但问题是,存储在表中的日期是 int 格式。如果在 2012 年 1 月 23 日,那么我表中的日期格式是 20130123。但是 curdate() 函数将获取 2013-01-23 格式的日期。谁能告诉我如何将表格中的日期与 curdate() 函数进行比较。

4

5 回答 5

2

简单地做一个

... WHERE CAST(dateformat(now(),'%Y%m%d') AS int)=datcol
于 2013-09-16T09:39:08.953 回答
2

CURDATE()函数返回格式2008-06-1320080613

你应该使用如下:

WHERE date_column = CURDATE() + 0

文档: http ://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_curdate

于 2013-09-16T09:42:46.550 回答
0

将格式应用于当前日期:

WHERE datecol <= dateformat(CURRENT_DATE,'%Y%m%d')
于 2013-09-16T09:45:37.457 回答
0

使用 CAST 函数将INT转换为varchar,然后使用STR_TO_DATE函数将varchar转换为日期http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_str-迄今为止

希望这可以帮助你

于 2013-09-16T09:46:34.163 回答
0

你可以像这样比较:

$tableDate = '20130123';
$curDate = '2013-01-23';
$curDate = str_replace('-','', $curDate);
if($curDate == $tableDate) {
   echo "Matched";
} else {
   echo "Not Matched";
}
于 2013-09-16T09:48:16.973 回答