sql server2005数据库中的begintm字段是毫秒格式,用sqlserver语句怎么转换成'yyyy-mm-dd hh24:mi:ss'格式

sql server2005数据库中的begintm字段是毫秒格式,用sqlserver语句怎么转换成'yyyy-mm-dd hh24:mi:ss'格式,第1张

毫秒格式是什么意思。如果是datetime类型的字段,可以用convert函数,例如
select convert(varchar(50),getdate(),120)
结果是2012-03-22 12:53:19

这个问题。。。。
给你个详细的回答吧 以后就不再担忧这方面的任何问题
Oracle计算时间差表达式
--获取两时间的相差豪秒数
select ceil((To_date('2008-05-02 00:00:00' , 'yyyy-mm-dd hh24-mi-ss') - To_date('2008-04-30 23:59:59' , 'yyyy-mm-dd hh24-mi-ss')) 24 60 60 1000) 相差豪秒数 FROM DUAL;
/
相差豪秒数
----------
86401000
1 row selected
/
--获取两时间的相差秒数
select ceil((To_date('2008-05-02 00:00:00' , 'yyyy-mm-dd hh24-mi-ss') - To_date('2008-04-30 23:59:59' , 'yyyy-mm-dd hh24-mi-ss')) 24 60 60) 相差秒数 FROM DUAL;
/
相差秒数
----------
86401
1 row selected
/
--获取两时间的相差分钟数
select ceil(((To_date('2008-05-02 00:00:00' , 'yyyy-mm-dd hh24-mi-ss') - To_date('2008-04-30 23:59:59' , 'yyyy-mm-dd hh24-mi-ss'))) 24 60) 相差分钟数 FROM DUAL;
/
相差分钟数
----------
1441
1 row selected
/
--获取两时间的相差小时数
select ceil((To_date('2008-05-02 00:00:00' , 'yyyy-mm-dd hh24-mi-ss') - To_date('2008-04-30 23:59:59' , 'yyyy-mm-dd hh24-mi-ss')) 24) 相差小时数 FROM DUAL;
/
相差小时数
----------
25
1 row selected
/
--获取两时间的相差天数
select ceil((To_date('2008-05-02 00:00:00' , 'yyyy-mm-dd hh24-mi-ss') - To_date('2008-04-30 23:59:59' , 'yyyy-mm-dd hh24-mi-ss'))) 相差天数 FROM DUAL;
/
相差天数
----------
2
1 row selected
/
----------------------------------------
注:天数可以2个日期直接减,这样更加方便
----------------------------------------
--获取两时间月份差
select (EXTRACT(year FROM to_date('2009-05-01','yyyy-mm-dd')) - EXTRACT(year FROM to_date('2008-04-30','yyyy-mm-dd'))) 12 +
EXTRACT(month FROM to_date('2008-05-01','yyyy-mm-dd')) - EXTRACT(month FROM to_date('2008-04-30','yyyy-mm-dd')) months
from dual;
/
MONTHS
----------
13
1 row selected
/
--------------------------------------
注:可以使用months_between函数,更加方便
--------------------------------------
--获取两时间年份差
select EXTRACT(year FROM to_date('2009-05-01','yyyy-mm-dd')) - EXTRACT(year FROM to_date('2008-04-30','yyyy-mm-dd')) years from dual;
/
YEARS
----------
1
1 row selected

不能,因为毫秒位精确3毫秒也就是在毫秒上只会出现 0,3,7
最接近你的答案是 2010年11月1日8时8分8秒887毫秒
=================
在sql server 2008中有你你说的这种类型 datetime2
示例如下:
DECLARE @dt7 datetime2(3)
SET @dt7 = Getdate()
PRINT @dt7
--result is 2010-12-20 8:50:11234

datename 返回代表指定时间字段的小时和分钟:
SELECT datename(Hour Hh h, '2004-10-15 10:30:00') --返回:10
SELECT datename(Minute Mi n, '2004-10-15 10:30:00') --返回:30
函数 参数/功能
GetDate( ) --返回系统目前的日期与时间
DateDiff (interval,date1,date2) --以interval 指定的方式,返回date2 与date1两个日期之间的差值 date2-date1
DateAdd (interval,number,date) --以interval指定的方式,加上number之后的日期
DatePart (interval,date) ---返回日期date中,interval指定部分所对应的整数值
DateName (interval,date) --返回日期date中,interval指定部分所对应的字符串名称
参数 interval的设定值如下:
值 缩 写(Sql Server) Access 和 ASP 说明
Year Yy yyyy 年 1753 ~ 9999
Quarter Qq q 季 1 ~ 4
Month Mm m 月1 ~ 12
Day of year Dy y 一年的日数,一年中的第几日 1-366
Day Dd d 日,1-31
Weekday Dw w 一周的日数,一周中的第几日 1-7
Week Wk ww 周,一年中的第几周 0 ~ 51
Hour Hh h 时0 ~ 23
Minute Mi n 分钟0 ~ 59
Second Ss s 秒 0 ~ 59
Millisecond Ms - 毫秒 0 ~ 999

1:在数据库A创建DBLINK
2:在数据库A创建临时表zxx_excute_time统计时间
3:在数据库B创建多个核心业务表结构
4:在在数据库A创建统计SQL执行时间的存储过程
5:单独测试核心表单独测试
6:同时插入多个核心表数据
注意:尽量使用核心表测试,因为核心包含lob字段。
SQL插入速度受带宽IO影响,如果带宽中存在大量的lob字段,那么可能严重影响到写性能。

获取当前时间的话可以在绑定值中输入CONVERT(VARCHAR(24),GETDATE(),120)

数据类型为datetime,毫秒为3个0;若为VARCHAR值,毫秒直接不显示,只显示到秒

参考网址:网页链接


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/13348482.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-19
下一篇 2023-07-19

发表评论

登录后才能评论

评论列表(0条)

保存