Ban*_*mar 0 sql sql-server stored-procedures
我正在使用SQL Server和PHP并使用存储过程.
我有一张叫做的桌子myTable.我有一个列start_time(日期时间格式).
start_time
-----------------------
2019-05-23 12:20:22.000
2019-08-02 01:21:02.000
2019-02-10 22:32:17.000
2019-08-14 04:56:24.000
Run Code Online (Sandbox Code Playgroud)
我想按时间过滤结果.
例如:BETWEEN 22:20:10.000 和 04:56:24.000
但是,它不起作用.
简单的转换为time数据类型将起作用:
select * from myTable
where cast(start_time as time) >= '22:00:00.000'
or cast(start_time as time) <= '04:00:00.000'
Run Code Online (Sandbox Code Playgroud)
请注意,将CAST函数应用于子句谓词中的start_time列WHERE将阻止该列有效使用的索引.除非指定其他标准,否则将需要全表扫描.