社区
疑难问题
帖子详情
MSSQL日期时间执行效率
lkh42002
2006-10-24 09:35:10
MSSQL查询语句对时间进行判断时有什么方法能提高效率呢?
select * from tbl where time1-time2>0.5(time1,time2为datetime格式)
请高手解释下这句话的意思,另外在SQL内部,日期时间的存储格式是怎样的?是不是类似MYSQL?
...全文
365
12
打赏
收藏
MSSQL日期时间执行效率
MSSQL查询语句对时间进行判断时有什么方法能提高效率呢? select * from tbl where time1-time2>0.5(time1,time2为datetime格式) 请高手解释下这句话的意思,另外在SQL内部,日期时间的存储格式是怎样的?是不是类似MYSQL?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用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
中操作
日期
和
时间
日期
和
时间
函数对建立一个站点是非常有用的。站点的主人往往对一个表中的数据何时被更新感兴趣。通过
日期
和
时间
函数,你可以在秒级跟踪一个表的改变。
日期
和
时间
类型是DATETIME、DATE、TIMESTAMP、TIME和YEAR。这些的每一个都有合法值的一个范围,而“零”当你指定确实不合法的值时被使用。注意,My
SQL
允许你存储某个“不严格地”合法的
日期
值,例如1999-11-31,原因我们认为它是应用...
my
sql
判断
时间
是否在某个区间_深入理解 My
SQL
:快速学会分析
SQL
执行
效率
作者|马听老师来源 |慕课专栏《一线数据库工程师带你深入理解 My
SQL
》本文首先会一起讨论一下
SQL
优化,然后分享如何定位慢查询和如何分析
SQl
执行
效率
,并用一些简单的例子让大家学会这些分析技巧。在工作中可能会遇到某个新功能在测试时需要很久才返回结果,这时就应该分析是不是慢查询导致的。如果确实有慢查询,又应该怎么去分析
SQL
执行
效率
呢?这一篇文章我们就来学习怎么找到慢查询...
my
sql
时间
排序_My
SQL
性能优化:按
日期
时间
字段排序
我有一张大约有100000个博客文章的表格,通过1:n关系链接到一个有50个Feed的表格。当我用一个select语句查询这两个表时,由发布表的
日期
时间
字段排序,My
SQL
总是使用filesort,导致查询
时间
非常慢(> 1秒)。以下是postings表(简化)的模式:+---------------------+--------------+------+-----+---------+-...
My
SQL
存储过程及
日期
时间
函数的用法
文章目录前言一、
日期
时间
函数1.1 My
SQL
日期
时间
函数的使用方法,具体操作如下所示。二、存储过程2.1存储过程的优点2.2创建存储过程2.3 in表示传入参数 前言 一、
日期
时间
函数 My
SQL
也支持
日期
时间
处理,提供了很多处理
日期
和
时间
的函数。一些常用的
日期
时间
函数 字符串函数 描述 curdate() 返回当前
时间
的年月日 curtime() 返回当前
时间
的时分秒 now() 返回当前
时间
的
日期
和
时间
month(x) 返回
日期
x 中的月份值 week(x) 返回
日期
x 是年
My
SQL
常用的
日期
时间
函数
*返回当前
日期
和
时间
**CURRENT_TIMESTAMP(),CURRENT_TIMESTAMP,LOCALTIME(),LOCALTIME,LOCALTIMESTAMP(),LOCALTIMESTAMP,NOW(),SYSDATE()**返回当前
日期
**CURDATE(),CURRENT_DATE(),CURRENT_DATE。**返回当前
时间
**CURTIME(),CURRENT_TIME(),CURRENT_TIME。**YEAR()函数**取
日期
时间
的年份。...
疑难问题
22,301
社区成员
121,734
社区内容
发帖
与我相关
我的任务
疑难问题
MS-SQL Server 疑难问题
复制链接
扫一扫
分享
社区描述
MS-SQL Server 疑难问题
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章