我有一个日期要显示为“ Quarters”,但不能显示除NULL
以外的任何内容(否则会显示错误)。我想以“ 2015 Q1”结尾,其中endtime
当前为1422748800
(2015年2月1日)。
这是我目前的尝试:
IF (
stock.engine = 1,
concat(
YEAR(endtime), ' Q', QUARTER(endtime)
)
, NULL) as QTR1
我也尝试过fomatting
endtime
(Unix格式)作为DATE_FORMAT(FROM_UNIXTIME(endtime), '%Y')
看来,无论我做什么,同一行都会不断抛出错误,或者仅显示为
NULL
。如何解决此问题以便正确显示?编辑:
我不知道这是否相关,但是我还是把它放在这里。表中的数据可以有多个...像这样:
table: stock
userid name engine endtime
1 Robert Griffin 1 1422748800
1 Robert Griffin 2 1422752615
2 Daryl Jones 4 1422939585
3 Patrick Daniels 3 1422858023
3 Patrick Daniels 4 1423047328
等等
最佳答案
我认为您需要from_unixtime()
。您的日期似乎正以这种格式存储。所以:
select (case when stock.engine = 1
then concat(year(from_unixtime(endtime)), ' Q', quarter(from_unixtime(endtime))
end) as QTR1
关于mysql - 使用UNIX TIME的带IF和QUARTER的MySQL SELECT,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30920740/