Mysql 间隔6个月,但用户添加了日期
我已经搜索了一个又一个答案,但我遇到的唯一例子是使用预设的Mysql 间隔6个月,但用户添加了日期,mysql,sql,Mysql,Sql,我已经搜索了一个又一个答案,但我遇到的唯一例子是使用预设的date('Y-m-d')命令的例子 我的数据库中有三个字段-月、日、年。这些字段的值是由个人而不是计算机输入的。现在,我如何确定如何不显示小于6个月的条目?您仍然可以使用日期功能。。。只需将其与mktime功能结合即可 // DATE IN IDF // WILL RETURN 2013-08-12 $date_less_6_months = date("Y-m-d", mktime(0, 0, 0, date("m") - 6, da
date('Y-m-d')
命令的例子
我的数据库中有三个字段-月、日、年。这些字段的值是由个人而不是计算机输入的。现在,我如何确定如何不显示小于6个月的条目?您仍然可以使用
日期
功能。。。只需将其与mktime
功能结合即可
// DATE IN IDF
// WILL RETURN 2013-08-12
$date_less_6_months = date("Y-m-d", mktime(0, 0, 0, date("m") - 6, date("d"), date("Y")));
// DATE BROKEN APART
$year_less_6_months = date("Y", mktime(0, 0, 0, date("m") - 6, date("d"), date("Y")));
$month_less_6_months = date("m", mktime(0, 0, 0, date("m") - 6, date("d"), date("Y")));
$date_less_6_months = date("d", mktime(0, 0, 0, date("m") - 6, date("d"), date("Y")));
现在,您可以将这些值与数据库值进行比较。
检查所有日期格式
所以,也许你想检查年,月,日分开。
使用:
可能需要格式化数据库值,请使用以下SQL:
DATE_FORMAT(date,format)
将您的各个列转换并强制转换为datetime,然后将其与今天进行比较。。。像这样的东西
SELECT *
FROM table
WHERE cast(CONCAT(year, '-', month, '-', day) as datetime) >= NOW() - INTERVAL 6 MONTH
假设以下内容来自您的数据库
$d = '02';
$m = '06';
$y = '2013';
从现在开始,我看不出有什么不同
$d1 = new DateTime($y.'-'.$m.'-'.$d);
$d2 = new DateTime(date("Y-m-d"));
$interval = $d2->diff($d1);
$months = $interval->format('%m months');
现在$months将包含月份的差异
您可以在这里查看查看了所有其他示例后,这一个对我来说似乎最有意义,而且很有效。有点唯一的问题是,它只显示了不到六个月的日期。将'>'切换为'
$d = '02';
$m = '06';
$y = '2013';
$d1 = new DateTime($y.'-'.$m.'-'.$d);
$d2 = new DateTime(date("Y-m-d"));
$interval = $d2->diff($d1);
$months = $interval->format('%m months');