我试图获取在当前日期之前不应显示数据的数据。但问题是,表中存储的日期是int格式。如果在2012年1月23日,则表格中的日期格式为20130123.但是curdate()函数将以2013-01-23格式获取日期。任何人都可以告诉我如何比较我的表中的日期与curdate()函数。
答案 0 :(得分:2)
只需做一个
... WHERE CAST(dateformat(now(),'%Y%m%d') AS int)=datcol
答案 1 :(得分:2)
CURDATE()
函数返回格式2008-06-13
和20080613
您应该使用以下内容:
WHERE date_column = CURDATE() + 0
文件: http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_curdate
答案 2 :(得分:0)
将格式应用于当前日期:
WHERE datecol <= dateformat(CURRENT_DATE,'%Y%m%d')
答案 3 :(得分:0)
使用CAST功能将 INT 转换为 varchar 然后使用 STR_TO_DATE 函数(http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_str-to-date)将 varchar 转换为日期
希望这有助于你
答案 4 :(得分:0)
你可以比较如下:
$tableDate = '20130123';
$curDate = '2013-01-23';
$curDate = str_replace('-','', $curDate);
if($curDate == $tableDate) {
echo "Matched";
} else {
echo "Not Matched";
}