MySQL,如何使用PHP验证字符串日期?

时间:2015-09-11 17:05:23

标签: mysql string validation date

我正在使用包含现有数据的表格。

' date' column的数据如下:

2015年9月26日,星期六 2015年9月26日星期六 2015年9月27日星期六 2015年9月27日星期六

etc..etc ..

使用PHP(或者只是直接的MySQL?)我怎样才能拉出/列出特定日期(今天的日期)之前的记录(数据)

像这样的事情..但是以“约会”的方式(咳嗽)在3表中。我不确定如何正确处理它。

SELECT s.sessioncode, s.sessionname, s.sessiontime FROM fc15_sessions AS s  WHERE s.sessiondate < **TODAYS_DATE** ORDER BY s.id

使用一些PHP进行测试并弄乱它&#39; date&#39;格式...

这似乎有用,可以与我合作......但不确定我是如何将它放在一起进行验证的:

$string = 'Saturday, September 26, 2015';
$timestamp = strtotime($string);

echo "DATE CHECK: " . date("Y-m-d H:i:s", $timestamp);

MySQL尝试:

SELECT s.id, s.sessiondate, s.sessioncode, s.sessionname, s.sessiontime
FROM fc15_sessions AS s
WHERE STR_TO_DATE(s.sessiondate, '%m/%d/%Y' ) > date( "m/d/Y" )
ORDER BY s.id

2 个答案:

答案 0 :(得分:1)

您可以使用此MySQL函数:

  
      
  • STR_TO_DATE(字符串,格式
  •   
  • DATE_FORMAT(日期,格式
  •   
  • CURDATE()或等效CURRENT_DATE()
  •   

所以你的最终MySQL查询就是:

SELECT s.sessioncode, s.sessionname, s.sessiontime  
FROM fc15_sessions AS s  
WHERE DATE_FORMAT(STR_TO_DATE(s.sessiondate, '%W, %M %d, %Y'),"%Y-%m-%d") < CURDATE()
ORDER BY s.id
  

注意:您必须使用格式&#34;%Y%m%d&#34; &#34;%Y-%m - %d&#34; (即带或不带分隔符的YYYY-MM-DD)用于正确的日期字符串比较。
在这种情况下,您必须使用格式&#34;%Y-%m-%d&#34; 作为函数 CURDATE()(或等效) CURRENT_DATE())以此格式返回结果。

答案 1 :(得分:0)

最终......最终(并且反对所有评论都无法完成)..

这最终对我有用。 (正确使用STR_TO_DATE参数,我错了,它的数据当前是如何格式化的,而不是你想要它格式化的方式)

"D"&$K$26"