问题已于6月4日发布,但仍未得到正确答案。
表格结构:
T_Person - 表1
CARDNO
168
471
488
247
519
518
331
240
518
386
441
331
T_Cardevent - 表2
CARDEVENTDATE CARDEVENTTIME
20090225 163932
20090225 164630
20090225 165027
20090225 165137
20090225 165147
20090225 165715
20090225 165749
20090303 162059
20090303 162723
20090303 155029
20090303 155707
20090303 162824
查询
SELECT CARDNO, CARDEVENTDATE, (1000000 * CAST (CARDEVENTDATE AS BIGINT) + CAST (CARDEVENTTIME AS BIGINT) - 30001) / 1000000 AS CardEvenDateAdjusted, CARDEVENTTIME
FROM T_CARDEVENT
WHERE (CARDEVENTDATE > 20090601)
GROUP BY CARDNO, CARDEVENTDATE, CARDEVENTTIME, (1000000 * CAST(CARDEVENTDATE AS BIGINT) + CAST(CARDEVENTTIME AS BIGINT) - 30001) / 1000000
ORDER BY CARDNO, CARDEVENDATEADJUSTED
从上面这个查询日期根据03:00:01到03:00:00的时间正确显示
如何获得调整日期的分钟(时间)和最长(时间)?
我需要针对上述条件的SQL查询。
答案 0 :(得分:1)
如果您想要所有CARDEVENTTIME
值的MIN / MAX:
SELECT MIN(CARDEVENTTIME)
, MAX(CARDEVENTTIME)
FROM T_Cardevent
结果:
MIN_CARDEVENTTIME MAX_CARDEVENTTIME
----------------- -----------------
155029 165749
或者如果您希望它们按CARDEVENTDATE
排序:
SELECT CARDEVENTDATE
, MIN(CARDEVENTTIME) AS MIN_CARDEVENTTIME
, MAX(CARDEVENTTIME) AS MAX_CARDEVENTTIME
FROM T_Cardevent
GROUP BY CARDEVENTDATE
结果:
CARDEVENTDATE MIN_CARDEVENTTIME MAX_CARDEVENTTIME
------------- ----------------- -----------------
20090225 163932 165749
20090303 155029 162824