Pen*_*uen 13 sql sql-server sql-server-2005
如何在SQL Server中将hh:mm:ss转换为hh:mm?
select Count(Page) as VisitingCount,Page,CONVERT(VARCHAR(8),Date, 108) from scr_SecuristLog
where Date between '2009-05-04 00:00:00' and '2009-05-06 14:58'
and [user] in(select USERNAME
from scr_CustomerAuthorities )
group by Page,Date order by [VisitingCount] asc
Run Code Online (Sandbox Code Playgroud)
通常,时间戳集不是很有序,这意味着你无法获得一个"最后"时间戳,其时间部分最多可达分钟2009-05-06 14:58.
In SQL Server,它将日期时间的一部分保留为1/300午夜之后的第二个分数,这个"最后"时间戳将是2009-05-06 14:58:59.997,但不能保证与其他TIMESTAMP存储方法的未来版本兼容.
这意味着你需要将你的BETWEEN条件分成两个条件,其中一个条件strict less不是下一个条件:
select Count(Page) as VisitingCount,Page,CONVERT(VARCHAR(8),Date, 108) from scr_SecuristLog
where Date >= '2009-05-04 00:00:00'
AND Date < DATEADD(minute, 1, '2009-05-06 14:58')
and [user] in(select USERNAME
from scr_CustomerAuthorities )
group by Page,Date order by [VisitingCount] asc
Run Code Online (Sandbox Code Playgroud)
此解决方案将有效地使用索引 Date
SELECT Convert(varchar(5), GetDate(), 108)
Run Code Online (Sandbox Code Playgroud)
使用varchar(5)将自动截断日期以删除秒.
| 归档时间: |
|
| 查看次数: |
66991 次 |
| 最近记录: |