怎么在MS SQL Server中获得毫秒 或者秒级时间

wu_java 2006-09-04 08:20:54
(datepart(second,getdate())) 可以获得当前的秒
我要的是从1900-1-1开始到目前共有多少秒或者毫秒
类似与JAVA中的System.currentTimeMillis()
...全文
881 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用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可以返回两个日期的差值

22,301

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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