MMakey
MMakey
2019-04-22 03:53
采纳率: 18.8%
浏览 3.1k

sqlserver 按时间进行查询

有两个条件@begin和@end。
想要实现:
①两个条件都有值或者其中一个有值,就按条件值进行查询;
②没有条件就查询全部。

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • qq_39815900
    沫琉璃 2019-04-22 09:26

    写存储过程判断开始时间和结束时间是否有值

    select * from 表名 where 时间列名 between @begin and @end

    点赞 评论
  • zhouzhixxiang0215
    zhouzhixxiang0215 2019-04-22 11:35

    select * from 表名 where 时间列名 > 最小值 and 时间列名 < 最大值

    点赞 评论
  • qq_36442647
    qq_36442647 2019-04-22 13:29

    CREATE PROCEDURE 存储过程名称
    @begin varchar(20)= '' ,
    @end varchar(20)= ''
    AS

    declare @strSQL varchar(6000)=''

    declare @strWhere varchar(400)='1=1'

    BEGIN
    if @begin!=''
    begin
    set @strWhere=' and 时间列名>'''+@begin+''''
    end
    if @end !=''
    begin
    set @strWhere=' and 时间列名<'''+@end+''''
    end
    set @strSQL='select * from 表名 where '+@strWhere
    exec (@strSQL)
    END

    GO

    点赞 评论

相关推荐