Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
两个时间戳之间的MYSQL查询_Mysql_Unix Timestamp - Fatal编程技术网

两个时间戳之间的MYSQL查询

两个时间戳之间的MYSQL查询,mysql,unix-timestamp,Mysql,Unix Timestamp,我的DB表中有以下条目 eventName(varchar 100) -> myEvent date(timestamp) -> 2013-03-26 09:00:00 我尝试使用以下查询: SELECT * FROM eventList WHERE `date` BETWEEN UNIX_TIMESTAMP(1364256001) AND UNIX_TIMESTAMP(1364342399) i、 e在2013-03-26 00:00:01和2013-03-26 23:59

我的DB表中有以下条目

eventName(varchar 100) -> myEvent
date(timestamp) -> 2013-03-26 09:00:00
我尝试使用以下查询:

SELECT * 
FROM eventList 
WHERE `date` BETWEEN UNIX_TIMESTAMP(1364256001) AND UNIX_TIMESTAMP(1364342399)
i、 e在2013-03-26 00:00:01和2013-03-26 23:59:59之间

但它给了我0个结果

我尝试过扩大日期范围,但运气不好,结果肯定在这个范围内

非常感谢您的帮助。

请尝试:

SELECT * 
FROM eventList 
WHERE  `date` BETWEEN FROM_UNIXTIME(1364256001) AND FROM_UNIXTIME(1364342399)

请尝试以下操作:

SELECT * FROM eventList WHERE
date BETWEEN 
STR_TO_DATE('2013/03/26', '%Y/%m/%d')
AND
STR_TO_DATE('2013/03/27', '%y/%m/%d')

试试这个。它对我有用

SELECT * FROM eventList
WHERE DATE(date) 
  BETWEEN 
    '2013-03-26' 
  AND 
    '2013-03-27'

您只需将日期转换为
UNIX\u时间戳
。您可以这样编写查询:

SELECT *
FROM eventList
WHERE
  date BETWEEN
      UNIX_TIMESTAMP('2013/03/26')
      AND
      UNIX_TIMESTAMP('2013/03/27 23:59:59');
如果不指定时间,MySQL将假定给定日期的时间为
00:00:00

@Amaynut谢谢

SELECT * 
FROM eventList 
WHERE date BETWEEN UNIX_TIMESTAMP('2017-08-01') AND UNIX_TIMESTAMP('2017/08/01');

如上所述,代码工作正常,我的问题得到解决。

请尝试下面的代码。在我的情况下工作。希望这有帮助

SELECT * FROM `orders` WHERE `order_date_time`  BETWEEN 1534809600 AND 1536718364
    select id,total_Hour,
    (coalesce(weekday_1,0)+coalesce(weekday_2,0)+coalesce(weekday_3,0)) as weekday_Listing_Hrs,
    (coalesce(weekend_1,0)+coalesce(weekend_2,0)+coalesce(weekend_3,0)) as weekend_Listing_Hrs
    from
    select *,
    listing_duration_Hour-(coalesce(weekday_1,0)+coalesce(weekday_2,0)+coalesce(weekday_3,0)+coalesce(weekend_1,0)+coalesce(weekend_2,0)) as weekend_3 
    from 
    (
    select * , 
    case when date(Start_Date) = date(End_Date) and weekday(Start_Date) in (0,1,2,3,4) 
         then timestampdiff(hour,Start_Date,End_Date)
         when date(Start_Date) != date(End_Date) and weekday(Start_Date) in (0,1,2,3,4) 
         then 24-timestampdiff(hour,date(Start_Date),Start_Date)
         end as weekday_1,  
    case when date(Start_Date) != date(End_Date) and weekday(End_Date) in (0,1,2,3,4) 
         then timestampdiff(hour,date(End_Date),End_Date)
         end as weekday_2,
    case when date(Start_Date) != date(End_Date) then    
    (5*(DATEDIFF(date(End_Date),adddate(date(Start_Date),+1)) DIV 7) + 
    MID('0123455501234445012333450122234501101234000123450',7 * WEEKDAY(adddate(date(Start_Date),+1))
    + WEEKDAY(date(End_Date)) + 1, 1))* 24 end as  weekday_3,
    case when date(Start_Date) = date(End_Date) and weekday(Start_Date) in (5,6) 
         then timestampdiff(hour,Start_Date,End_Date)
         when date(Start_Date) != date(End_Date) and weekday(Start_Date) in (5,6) 
         then 24-timestampdiff(hour,date(Start_Date),Start_Date)
         end as weekend_1,  
    case when date(Start_Date) != date(End_Date) and weekday(End_Date) in (5,6) 
         then timestampdiff(hour,date(End_Date),End_Date)
         end as weekend_2
    from 
    TABLE_1
    )

试试这个它对我有用

SELECT * from bookedroom
    WHERE UNIX_TIMESTAMP('2020-8-07 5:31')
        between UNIX_TIMESTAMP('2020-8-07 5:30') and
        UNIX_TIMESTAMP('2020-8-09 5:30')

为什么有人会在查询中写入时间戳值?查看关于如何使用格式化日期的其他答案。我不知道为什么这个答案有效,尽管如果我有一个时间戳,我想使用
UNIX\u timestamp(mytimestamp)
FROM\u UNIXTIME(mytimestamp)
在我的情况下,这两个答案都不起作用,并且使用php变量/direct timestamp有效!这不是问题的答案。请修改您的答案并提供解释。如果我创建
$today\u start=DateToTimestamp(date('Y-m-d h:i:sa',strotime('today midnight'),$timezone)$today_end=DateToTimestamp(日期('Y-m-d h:i:SA',标准时间('-1秒',标准时间('明日午夜)),$时区)
并在从UNIXTIME($today\u start)到从UNIXTIME($today\u end)之间使用此
它不会返回它应该返回的内容,因此我必须直接使用变量。这一个确实适用于一个日期(以可读的形式,尽管类似于2013-03-26 00:00:01),但不适用于时间戳,就像我的情况一样,但不适用于一般情况。为什么不直接提供时间戳呢?
SELECT * from bookedroom
    WHERE UNIX_TIMESTAMP('2020-8-07 5:31')
        between UNIX_TIMESTAMP('2020-8-07 5:30') and
        UNIX_TIMESTAMP('2020-8-09 5:30')