社区
疑难问题
帖子详情
MSSQL日期时间执行效率
lkh42002
2006-10-24 09:35:10
MSSQL查询语句对时间进行判断时有什么方法能提高效率呢?
select * from tbl where time1-time2>0.5(time1,time2为datetime格式)
请高手解释下这句话的意思,另外在SQL内部,日期时间的存储格式是怎样的?是不是类似MYSQL?
...全文
397
12
打赏
收藏
MSSQL日期时间执行效率
MSSQL查询语句对时间进行判断时有什么方法能提高效率呢? select * from tbl where time1-time2>0.5(time1,time2为datetime格式) 请高手解释下这句话的意思,另外在SQL内部,日期时间的存储格式是怎样的?是不是类似MYSQL?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
lkh42002
2006-10-24
打赏
举报
回复
to i9988
" 最好不要在索引字段用函数 ",呵呵,第一次听说,不要见怪,能不能进一步解释下?
dulei115
2006-10-24
打赏
举报
回复
Microsoft SQL Server 用两个 4 字节的整数内部存储 datetime 数据类型的值。第一个 4 字节存储 base date(即 1900 年 1 月 1 日)之前或之后的天数。基础日期是系统参考日期。不允许早于 1753 年 1 月 1 日的 datetime 值。另外一个 4 字节存储以午夜后毫秒数所代表的每天的时间。
smalldatetime 数据类型存储日期和每天的时间,但精确度低于 datetime。SQL Server 将 smalldatetime 的值存储为两个 2 字节的整数。第一个 2 字节存储 1900 年 1 月 1 日后的天数。另外一个 2 字节存储午夜后的分钟数。日期范围从1900 年 1 月 1 日到 2079 年 6 月 6 日,精确到分钟。
i9988
2006-10-24
打赏
举报
回复
以上改变假设time1有索引,如果time2有索引
select * from tbl where time1-time2>0.5
--〉
select * from tbl where time1-0.5>time2
--〉
select * from tbl where time2<time1-0.5
--〉
select * from tbl where time2<dateadd(hour,-12,time1)
希望楼主明白我的意思
i9988
2006-10-24
打赏
举报
回复
如果要讨论效率,就最好不要在索引字段用函数
select * from tbl where time1-time2>0.5
--〉
select * from tbl where time1>time2+0.5
--〉
select * from tbl where time1>dateadd(hour,12,time2)
lkh42002
2006-10-24
打赏
举报
回复
用datediff()在数据达到数百万条的时候速度比较慢.
dawugui
2006-10-24
打赏
举报
回复
日期时间的存储格式?
主要是显示的格式吧.
使用cast,convert看看.
子陌红尘
2006-10-24
打赏
举报
回复
在SQL Server中,可以使用datediff()函数来比较日期。
子陌红尘
2006-10-24
打赏
举报
回复
declare @date1 datetime,@date2 datetime
set @date1=getdate()
set @date2=dateadd(hh,12,getdate())
select cast(@date2-@date1 as numeric(10,8)) as [Days]
/*
Days
------------
.50000000
*/
子陌红尘
2006-10-24
打赏
举报
回复
两个日期相减,得到的是值是天数,楼主的SQL即查出time1与time2的时间差在半天以上的数据。
九斤半
2006-10-24
打赏
举报
回复
select * from tbl where time1-time2>0.5
===================
应该用DATEDIFF吧~~~
SELECT * FROM TBL WHERE DATEDIFF(DATEPART,TIME1,TIME2)>0.5
i9988
2006-10-24
打赏
举报
回复
楼上解释了
加个“最好”是因为有些功能没法避免使用函数
wcmj
2006-10-24
打赏
举报
回复
" 最好不要在索引字段用函数 "
意思是说,用了有可能会破坏索引,达不到索引的效果
my
sql
日期
如何录入_在My
SQL
中操作
日期
和
时间
日期
和
时间
函数对建立一个站点是非常有用的。站点的主人往往对一个表中的数据何时被更新感兴趣。...注意,My
SQL
允许你存储某个“不严格地”合法的
日期
值,例如1999-11-31,原因我们认为它是应用...
my
sql
判断
时间
是否在某个区间_深入理解 My
SQL
:快速学会分析
SQL
执行
效率
作者|马听老师来源 |慕课专栏《一线数据库工程师带你深入理解 My
SQL
》本文首先会一起讨论一下
SQL
优化,然后分享如何定位慢查询和如何分析
SQl
执行
效率
,并用一些简单的例子让大家学会这些分析技巧。在工作中可能...
my
sql
时间
排序_My
SQL
性能优化:按
日期
时间
字段排序
当我用一个select语句查询这两个表时,由发布表的
日期
时间
字段排序,My
SQL
总是使用filesort,导致查询
时间
非常慢(> 1秒)。以下是postings表(简化)的模式:+---------------------+--------------+------+-----+--...
My
SQL
存储过程及
日期
时间
函数的用法
文章目录前言一、
日期
时间
函数1.1 My
SQL
日期
时间
函数的使用方法,具体操作如下所示。二、存储过程2.1存储过程的优点2.2创建存储过程2.3 in表示传入参数 前言 一、
日期
时间
函数 My
SQL
也支持
日期
时间
处理,提供了很...
My
SQL
常用的
日期
时间
函数
*返回当前
日期
和
时间
**CURRENT_TIMESTAMP(),CURRENT_TIMESTAMP,LOCALTIME(),LOCALTIME,LOCALTIMESTAMP(),LOCALTIMESTAMP,NOW(),SYSDATE()**返回当前
日期
**CURDATE(),CURRENT_...**YEAR()函数**取
日期
时间
的年份。...
疑难问题
22,297
社区成员
121,730
社区内容
发帖
与我相关
我的任务
疑难问题
MS-SQL Server 疑难问题
复制链接
扫一扫
分享
社区描述
MS-SQL Server 疑难问题
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章