如何将bigint转化为date

lhpgh 2009-07-01 08:05:29
在使用配置管理工具SAW(Dynamsoft SourceAnywhere )时,发现其保存在SQL SERVER 2005的操作日志记录中的操作时间字段dtDate是bigint类型,通过查询此字段的值如下:
128908917114680000
128908917690148750
128908917690148750
128908917690148750
128908917879680000
128908917879680000
128908917879680000
128909209536401250
128909209536401250
128909209536401250

请问:如何将bigint类型的值转化为了日期类型或日期格式的字符串?
...全文
537 24 打赏 收藏 转发到动态 举报
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
hecker728 2009-07-02
  • 打赏
  • 举报
回复
不知道内幕。。没有头绪
drysea 2009-07-02
  • 打赏
  • 举报
回复
帮顶。。。
ChinaJiaBing 2009-07-02
  • 打赏
  • 举报
回复
路过...
htl258_Tony 2009-07-02
  • 打赏
  • 举报
回复
先要看出规则,否则真的没法搞.
soft_wsx 2009-07-02
  • 打赏
  • 举报
回复
关注金融危机,关注此贴,顶下先
wuxiong100 2009-07-02
  • 打赏
  • 举报
回复
帮顶
youzhj 2009-07-02
  • 打赏
  • 举报
回复
帮顶
flairsky 2009-07-02
  • 打赏
  • 举报
回复
看不出规律,无法下手
victorcai2006 2009-07-01
  • 打赏
  • 举报
回复
貌似没有什么很好的方法,这个题目很郁闷~~~~!!帮顶了
ws_hgo 2009-07-01
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 lhpgh 的回复:]
引用 5 楼 ws_hgo 的回复:
SQL codedeclare@Datebigintset@Date=128908917114680000selectcast(@Dateasdatetime)

消息8115,级别16,状态2,第3 行
将 expression 转换为数据类型datetime 时出现算术溢出错误。


我的报错信息如下,跟你的一模一样:
消息 8115,级别 16,状态 2,第 3 行
将 expression 转换为数据类型 datetime 时出现算术溢出错误。

[/Quote]
你用其它工具打开看下
因为你这样实在是看不出规律
索引不知道怎么下手
guguda2008 2009-07-01
  • 打赏
  • 举报
回复
严重关注事态进程
dawugui 2009-07-01
  • 打赏
  • 举报
回复
不知道规则怎么搞?
feixianxxx 2009-07-01
  • 打赏
  • 举报
回复
先测试出规则
lhpgh 2009-07-01
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 ws_hgo 的回复:]
SQL codedeclare@Datebigintset@Date=128908917114680000selectcast(@Dateasdatetime)

消息8115,级别16,状态2,第3 行
将 expression 转换为数据类型datetime 时出现算术溢出错误。
[/Quote]

我的报错信息如下,跟你的一模一样:
消息 8115,级别 16,状态 2,第 3 行
将 expression 转换为数据类型 datetime 时出现算术溢出错误。
lhpgh 2009-07-01
  • 打赏
  • 举报
回复
那个我早就试过了,并且还下载并尝试如下:

原例:
DECLARE @b BIGINT ,@d DATETIME
SET @b=633342768599062500
SELECT @d= DATEADD(dd,(@b - 599266080000000000)/ 10 / 1000000 / 60 / 60 / 24 /*转换为天以免dateadd溢出*/,'1900-1-1')
SELECT @d
/*2007-12-26 00:00:00.000*/
SET @b=625816800000000000
SELECT @d= DATEADD(dd,(@b - 599266080000000000)/ 10 / 1000000 / 60 / 60 / 24 /*转换为天以免dateadd溢出*/,'1900-1-1')
SELECT @d
/*1984-02-20 00:00:00.000*/

SELECT * FROM tb WHERE DATEDIFF(dd,DATEADD(dd,(TricksField - 599266080000000000)/ 10 / 1000000 / 60 / 60 / 24 ,'1900-1-1'),GETDATE())=0


但我把表名:tb ,字段名:TricksField 换成自己的库表与字段,还是报错Q
ws_hgo 2009-07-01
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 lhpgh 的回复:]
就是一直没有找到相关的规则说明,闷呀
[/Quote]
你不用这个工具换一个试下
lhpgh 2009-07-01
  • 打赏
  • 举报
回复
就是一直没有找到相关的规则说明,闷呀
ai_li7758521 2009-07-01
  • 打赏
  • 举报
回复
不知道什么规则,2009-05-24 12:36:42.780换为毫秒是:64586378202780
ws_hgo 2009-07-01
  • 打赏
  • 举报
回复
上面是测试结果
用Cast
貌似不行
UP
ws_hgo 2009-07-01
  • 打赏
  • 举报
回复
declare @Date bigint
set @Date=128908917114680000
select cast(@Date as datetime)

消息 8115,级别 16,状态 2,第 3 行
将 expression 转换为数据类型 datetime 时出现算术溢出错误。
加载更多回复(4)

34,594

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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