[英]MAX function returning unexpected result
我正在使用此查询,但结果与预期不符:
select max(time_taken)
from abc
where id='13'
and tdy_date='2017-10-13'
结果:
9:53
但实际结果应该是10:03。 time_taken
的数据类型是character varying
,格式为 00:00。
您应该使用数据类型作为日期时间,但在这段时间内您可以使用此查询获得所需的结果
select max(time_taken::time) as max from abc where student_id='13' and tdy_date='2017-10-13';
因为time_taken列中的所有值都是00:00格式,只要是24小时制(即00:00到23:59),把列的数据类型改成TIME是没有问题的,只要执行以下代码行:
ALTER TABLE abc ALTER COLUMN time_taken TIME
这样,当您选择 Max time_taken 时,SQL Server 能够正确确定这些值的优先级。 所以:
SELECT MAX(LEFT(time_taken,5))
FROM abc
WHERE id='13'
AND tdy_date='2017-10-13'
现在应该给出:10:03。
它会给出 10:03:00.0000000 但我使用 LEFT 函数只选择字符串左侧的前五个字符。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.