社区
疑难问题
帖子详情
怎么在MS SQL Server中获得毫秒 或者秒级时间
wu_java
2006-09-04 08:20:54
(datepart(second,getdate())) 可以获得当前的秒
我要的是从1900-1-1开始到目前共有多少秒或者毫秒
类似与JAVA中的System.currentTimeMillis()
...全文
900
9
打赏
收藏
怎么在MS SQL Server中获得毫秒 或者秒级时间
(datepart(second,getdate())) 可以获得当前的秒 我要的是从1900-1-1开始到目前共有多少秒或者毫秒 类似与JAVA中的System.currentTimeMillis()
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
wanglovec
2006-11-16
打赏
举报
回复
MARK
wu_java
2006-09-05
打赏
举报
回复
几位发言
对我启发很大
hillhx
2006-09-05
打赏
举报
回复
你就算秒吧,算到毫秒我看也没啥意义,因为就算豪秒一样有重复的可能,不知道你取来做什么用,如果想要表唯一字段,可以考虑用时间戳
zjcxc
2006-09-04
打赏
举报
回复
关于丢失精度的问题, 下面的示例说明:
SELECT
[Second] = CONVERT(bigint, DATEDIFF(mi, '1900-1-1', '1900-1-1 00:01:20')) * 60
zjcxc
2006-09-04
打赏
举报
回复
注意, 不应该使用下面的形式, 数据丢失得会比较多
SELECT
[Second] = CONVERT(bigint, DATEDIFF(mi, '1900-1-1', GETDATE())) * 60,
[millSecond] = CONVERT(bigint, DATEDIFF(mi, '1900-1-1', GETDATE())) * 60 * 1000
zjcxc
2006-09-04
打赏
举报
回复
转换影响的是处理的结果, 所以只转换是做不到的.
做类似这样的处理, 将时间分为两段处理, 对于毫秒, 先到秒, 再到毫秒, 不过要丢失一些精度
SELECT
[Second] = CONVERT(bigint, DATEDIFF(ss, '1900-1-1', '1960-1-1'))
+ DATEDIFF(ss, '1960-1-1', GETDATE()),
[millSecond] = (CONVERT(bigint, DATEDIFF(ss, '1900-1-1', '1960-1-1'))
+ DATEDIFF(ss, '1960-1-1', GETDATE())) * 1000
lxzm1001
2006-09-04
打赏
举报
回复
把它再换成bigint看成不成
zjcxc
2006-09-04
打赏
举报
回复
不过, DATEDIFF的值是int类型, 要到秒或者毫秒这个数据的话, 恐怕一般还不能直接使用.
zjcxc
2006-09-04
打赏
举报
回复
SELECT DATEDIFF(ss, '1900-1-1', getdate())
SELECT DATEDIFF(ms, '1900-1-1', getdate())
用DATEDIFF可以返回两个日期的差值
Sql
server
时间
戳,
秒级
毫秒
级
--
时间
转13位
毫秒
级
时间
戳 SELECT CONVERT(BIGINT,DATEDIFF(MI,'1970-01-01 00:00:00.000', GETUTCDATE())) * 60000 + DATEPART(S,GETUTCDATE()) * 1000 + DATEPART(MS, GETUTCDATE()) --13位
毫秒
级
时间
戳
时间
格式 SELECT DATEADD (MS ,CONVERT(BIGINT,1624871473667) % 60000 ,DATEADD(MI,CONVER.
sql
server
获取当前
时间
到
秒级
和
毫秒
级的语句
秒 convert(char(24),getdate(),120)
毫秒
convert(char(24),getdate(),121) 转载于:https://www.cnblogs.com/iamchao/p/3677151.html
MS
SQL
SERVER
中
时间
的精度问题
在
SQL
SERVER
中
时间
的精度为1/300秒,换句话说在
SQL
SERVER
中
1代表1/300S,所以1S在
SQL
SERVER
中
存储时对应的十进制数据是300,十六进制为12C。300是这样的到的:1除以1/300。 那么在
SQL
SERVER
中
的其他的ms如何表示呢? 在下面的例子
中
,使用一个循环在表
中
插入1000行,每行分别增加1ms,但是在
SQL
SERVER
中
表示并不
sql
server
时间
相差秒数_
Sql
Server
中
两
时间
相减 DATEDIFF()
DATEDIFF 返回跨两个指定日期的日期和
时间
边界数。 语法 DATEDIFF ( datepart , startdate , enddate ) 参数 datepart 是规定了应在日期的哪一部分计算差额的参数。下表列出了 Microsoft?
SQL
Server
? 识别的日期部分和缩写。 日期部分 缩写 year yy, yyyy quarter qq, q ...
sql
server
和greenplum
毫秒
时间
戳
用kettle把order表从
sql
server
抽取到greenplum,目标表是appendonly模式,故不能使用
时间
回滚; postgres
中
timestamp
时间
和
sql
server
中
datetime
时间
无法直接进行逻辑运算,故均转换为unix
时间
戳;
sql
server
时间
戳没有小数(
毫秒
)部分,如果只精确到秒,增量插入时会漏掉部分数据或重复插入,故要计算
毫秒
部分; -- postgres select date_part('epoch',TIMESTAMP '2021-03-03 15:2
疑难问题
22,297
社区成员
121,730
社区内容
发帖
与我相关
我的任务
疑难问题
MS-SQL Server 疑难问题
复制链接
扫一扫
分享
社区描述
MS-SQL Server 疑难问题
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章