sql语句中的时间比较

zhouguoyu2012 2011-12-16 09:48:44
VS2008 C# sql2005

select * from table where datetime > '"+ strDateTime +"';
select * from table where datetime > '"+ DateTime.parse(strDateTime) +"';


这样比较都不对?正确的是什么样子的?
...全文
94 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
rwm5366745 2011-12-16
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 zerokiseki 的回复:]
肯定错了:

T-SQL对于日期类型数据的比较的确支持>、<、=这些,但是一定要记住日期类型为数据库内置的日期类型

Demo如下:

select * from table where datetime1 > convert(datetime,'2011-12-16 00:00:00',120)
[/Quote]

select * from table where datetime1 >'2011-12-16'
这样也可以
赳赳老陈 2011-12-16
  • 打赏
  • 举报
回复
>、<都是可以的
StringBuilder strSql = new StringBuilder();
strSql.Append(@"
select *
from tableName
where CreateDate>=@DateTime1 and CreateDate<@DateTime2 ");

SqlParameter[] parameters = {
new SqlParameter("@DateTime1", SqlDbType.DateTime),
new SqlParameter("@DateTime2", SqlDbType.DateTime)};
parameters[0].Value = date.Date;
parameters[1].Value = DateTime.Now.Date.AddDays(1);
DbHelperSQL.Query(strSql.ToString(), parameters);

像这样做肯定没问题
香儿爱土豆 2011-12-16
  • 打赏
  • 举报
回复
不好意思,引用错了,应该是引用:select * from table where cast([datetime] as datetime) >'"+ strDateTime +"'
香儿爱土豆 2011-12-16
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 q107770540 的回复:]

DATEDIFF ( datepart , startdate , enddate )
[/Quote]

这种写法在性能上是有问题的,在海量数据中,会导致严重的性能问题。where子句的判断逻辑左式尽量避免逻辑计算,如cast([datetime] as datetime) >'"+ strDateTime +"'这句左面出现了cast([datetime] as datetime)
香儿爱土豆 2011-12-16
  • 打赏
  • 举报
回复
肯定错了:

T-SQL对于日期类型数据的比较的确支持>、<、=这些,但是一定要记住日期类型为数据库内置的日期类型

Demo如下:

select * from table where datetime1 > convert(datetime,'2011-12-16 00:00:00',120)
快溜 2011-12-16
  • 打赏
  • 举报
回复
select * from table where cast([datetime] as datetime) >'"+ strDateTime +"'
q107770540 2011-12-16
  • 打赏
  • 举报
回复
DATEDIFF ( datepart , startdate , enddate )
香儿爱土豆 2011-12-16
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 chenlilinman 的回复:]

>、<都是可以的
C# code
StringBuilder strSql = new StringBuilder();
strSql.Append(@"
select *
from tableName
where CreateDate>=@DateTime1 and CreateDate<@DateTime2 ");

SqlParamet……
[/Quote]

呵呵,不过一般来说尽量避免这种操作,遵循内置类型编码在性能上会得到一定的保证。

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧