每天在字段类型时间戳中获取SELECT MySQL中的数据

时间:2019-03-02 09:00:23

标签: mysql sql select

我想选择特定日期(即“星期一”)所在的行,但我的类型列是时间戳记“ AAAA-MM-DD HH:MM:SS”。我已经搜索过,但是我没有如何选择它。

我的表是这个,而字段是forex_pair_price_time(时间戳):

mysql> describe forex_pair_price;
+-------------------------+----------------+------+-----+-------------------+----------------+
| Field                   | Type           | Null | Key | Default           | Extra          |
+-------------------------+----------------+------+-----+-------------------+----------------+
...
| forex_pair_price_time   | timestamp      | NO   |     | CURRENT_TIMESTAMP |                |
...
+-------------------------+----------------+------+-----+-------------------+----------------+

3 个答案:

答案 0 :(得分:0)

http://www.mysqltutorial.org/mysql-weekday

使用WEEKDAY(日期)。

WEEKDAY函数返回一个日期的工作日索引,即星期一为0,星期二为1,星期日为6。

Select * from forex_pair_price 
where weekday(forex_pair_price_time)=0

Dayname(forex_pair_price_time)='Monday'

我认为使用weekday会更省钱,因为它是对整数而不是字符串的比较。这样可以避免String中的拼写错误。

答案 1 :(得分:0)

要查找周一发生外汇时间戳的所有记录,我们可以尝试使用DAYNAME

SELECT *
FROM forex_pair_price
WHERE DAYNAME(forex_pair_price_time) = 'Monday';

答案 2 :(得分:0)

SELECT forex_pair_price_time,
CASE 
    WHEN DAYOFWEEK(orex_pair_price_time) = 1 THEN "Sunday"
    WHEN DAYOFWEEK(orex_pair_price_time) = 2 THEN "Monday"
    WHEN DAYOFWEEK(orex_pair_price_time) = 3 THEN "Tuesday"
    WHEN DAYOFWEEK(orex_pair_price_time) = 4 THEN "Wednesday"
    WHEN DAYOFWEEK(orex_pair_price_time) = 5 THEN "Thursday"
    WHEN DAYOFWEEK(orex_pair_price_time) = 6 THEN "Friday"
    WHEN DAYOFWEEK(orex_pair_price_time) = 7 THEN "Saturday"
  END Weekday
 FROM forex_pair_price