asp.net时间范围查询

本文介绍了一种在前后端交互中处理时间查询的方法。通过使用JavaScript和C#,实现了对用户输入的时间范围的有效验证和数据库查询。具体包括前端时间范围的选择、格式化以及后端对时间范围的正确性检查与SQL构建。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.首先要查询类表中的一个时间段,要明确我的数据库中只有一个时间字段,我们先将他拆分一下。

if ($("#news_OpenTime").val() != "" || $("#news_CloseTime").val() != "") {
sear += "&sj=" + $("#news_OpenTime").val() + "," + $("#news_CloseTime").val();
}

这一段js的意思是,我的前台有两个text元素,当然现在用js已经变成了日历控件。

下面是后台代码:

if (Request.QueryString["sj"] != null)
{
sj = Request.QueryString["sj"];
url += "&sj=" + sj;
}

sj即时间,是我获取的前台的值。

因为我前台获取的值是 $("#news_OpenTime").val() + "," + $("#news_CloseTime").val() 所以进行拆分。

if (sj != string.Empty)

//首先是时间不为空,如果为空就不走
{
string pr1 = sj.Split(',')[0];
string pr2 = sj.Split(',')[1];

//用逗号截取
string newsTime1 = string.Empty, newsTime2 = string.Empty;
if (pr1 != string.Empty && pr2 == string.Empty)
{
num += "and(convert(char(10),news_Time,120) >= '" + pr1 + "')";
newsTime1 = pr1;
}

//条件1.如果用户只输入第一个文本框

//这里的convert(char(10),news_Time,120),截取年月日,去除时分秒
else if (pr1 == string.Empty && pr2 != string.Empty)
{
num += "and(convert(char(10),news_Time,120) <= '" + pr2 + "')";
newsTime2 = pr2;
}

//条件2,用户只输入第二个文本框
else
{

//现在有个思路,用户选择第一个文本框,和第二个文本框,如果第一个小,第二大,当然很好,但是如果第一个大呢,难道用户就查不出来了吗,这当让不行。

所以如下
DateTime sj1 = Convert.ToDateTime(pr1);
DateTime sj2 = Convert.ToDateTime(pr2);

//转化两个string 类型的值,只为比较大小
if (DateTime.Compare(sj1, sj2) > 0)
{
newsTime1 = pr2;
newsTime2 = pr1;
}
else
{
newsTime1 = pr1;
newsTime2 = pr2;
}
num += "and(convert(char(10),news_Time,120) between '" + newsTime1 + "' and '" + newsTime2 + "')";
}

最后是绑定
news_OpenTime.Text = newsTime1;
news_CloseTime.Text = newsTime2;
}

两种时间查询

select convert(char(10),news_Time,120) from tb_News

select news_Time from tb_News

转载于:https://www.cnblogs.com/tuoxiong/p/6015381.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值