我想选择特定日期(即“星期一”)所在的行,但我的类型列是时间戳记“ 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 | |
...
+-------------------------+----------------+------+-----+-------------------+----------------+
答案 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