2017-08-25 62 views
0

嗨MySQL的Unix的时间戳存储在我的表的日期列现在我正在从日期选择器与两个字段即from_dateto_date搜索,但我没有发现任何记录尝试了很多方法,但没有成功我的日期选择器日期是这样的08/22/2017而UNIX的时间戳存储在表像如何在两个mysql之间搜索unix时间戳?

1503380449 
1503380428 
1503380326 

我如何能火MySQL查询两个日期我试过mysql的UNIX时间戳功能,但不工作之间取得记录。

我尝试这样做: -

SELECT * FROM tbl_example WHERE 
my_date BETWEEN 
STR_TO_DATE('2017/08/22', '%Y %D %M %h:%i:%s %x') 
AND 
STR_TO_DATE('2017/08/22', '%Y %D %M %h:%i:%s %x') 

我尝试这样做: -

SELECT * FROM tbl_example WHERE 
my_date BETWEEN 
UNIX_TIMESTAMP(STR_TO_DATE('2017/08/22', '%M %d %Y %h:%i%p') 
AND 
UNIX_TIMESTAMP(STR_TO_DATE('2017/08/22', '%M %d %Y %h:%i%p') 

我也试过这样: -

SELECT * FROM tbl_example WHERE 
my_date BETWEEN 
FROM_UNIXTIME(UNIX_TIMESTAMP(STR_TO_DATE('Aug 22 2017 12:00AM', '%M %d %Y %h:%i%p'))) 
AND 
FROM_UNIXTIME(UNIX_TIMESTAMP(STR_TO_DATE('Aug 22 2017 12:00AM', '%M %d %Y %h:%i%p'))) 

感谢

+0

你必须解析datepicker的价值来改变它的时间戳比较,你应该看看http://php.net/manual/en/function.strtotime.php – MacBooc

+0

@MacBooc我想要所有记录的特定日期使用时间戳存储在MySQL表 – abhaystack

+0

你试过我的anwser? – MacBooc

回答

0

,如果你想在mysql中你应该使用UNIX_TIME STAMP功能

PHP:

$from_date = "08/22/2017"; 
$from_date = substr($from_date, 6, 4) . "-" . substr($from_date, 0, 2) . "-" . substr($from_date, 3, 2); 
$to_date = "08/30/2017"; 
$to_date = substr($to_date, 6, 4) . "-" . substr($to_date, 0, 2) . "-" . substr($to_date, 3, 2); 

MYSQL:

"SELECT * FROM tbl_example WHERE 
my_date BETWEEN 
UNIX_TIMESTAMP('".$from_date." 00:00:00') 
AND 
UNIX_TIMESTAMP('".$to_date." 23:59:59')" // changed here to have the end of the day in case that the query is on the same day 

或 PHP:

$from_date = strtotime("08/22/2017"); 
$to_date = strtotime("08/30/2017"); 

MYSQL:

"SELECT * FROM tbl_example WHERE 
my_date BETWEEN 
".$from_date." 
AND 
".$to_date 
+0

非常感谢你MacBooc ....它的工作很棒:-) – abhaystack

+0

但我想建议你,而不是做substr转换我们可以简单使用这种方式date('Ym-d',strtotime(“08/22/2017”));你说的话 ? – abhaystack

+0

是的,这也是一个好主意,但是如果你想使用它,你可以直接使用strtotime(“08/22/2017”)来获得时间戳,我认为你想用SQL来做,我会编辑显示您 – MacBooc