getdate() 返回值 转换为DWORD

yuyunliuhen 2009-04-14 01:48:08
数据库中通过gatedate返回的时间格式 大概是这个样子的 2009-4-14 10:51:19
我想用一个DWORD值保存这个时间值,请问有什么好的方法,或者算法。
BS:可以直接返回字符串,但这样的话,需要多于16BYTES,如果能用DWORD保存的话,当然使用这个了,然后在客户端又可通过这个DWORD值得出时间值。
谢谢!
...全文
255 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
haitao 2009-04-14
  • 打赏
  • 举报
回复
39915.5764916281天 的确不是longint能存储的,精确到分钟也许可以了,
也就是smalldatetime才是4个字节的原因
yuyunliuhen 2009-04-14
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 jinjazz 的回复:]
引用 10 楼 yuyunliuhen 的回复:
谢谢各位!
getdate()是设置的默认值,类似日志形式的,然后可以方便的查看时间。
数据都是以包的形式发送的,在客户端不能直接操作数据库,也不能执行SQL语句了吧,


你不能执行sql语句还谈什么getdate返回类型。
[/Quote]

这个是服务器上执行SQL的,然后就返回值发送客户端
yuyunliuhen 2009-04-14
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 jinjazz 的回复:]
select cast(getdate() as float) 返回39915.5764916281

客户端用语言自己转一下就行了,1900-1-1加上39915.5764916281天,这个不是很难把,怎么一点进取心都灭有的
[/Quote]

zxkid 2009-04-14
  • 打赏
  • 举报
回复
DATETIME在SQL Server存储为2个4 字节整数(即2个DWORD),用一个DWORD是保存不了的吧
jinjazz 2009-04-14
  • 打赏
  • 举报
回复
select cast(getdate() as float) 返回39915.5764916281

客户端用语言自己转一下就行了,1900-1-1加上39915.5764916281天,这个不是很难把,怎么一点进取心都灭有的
jinjazz 2009-04-14
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 yuyunliuhen 的回复:]
谢谢各位!
getdate()是设置的默认值,类似日志形式的,然后可以方便的查看时间。
数据都是以包的形式发送的,在客户端不能直接操作数据库,也不能执行SQL语句了吧,
[/Quote]

你不能执行sql语句还谈什么getdate返回类型。
yuyunliuhen 2009-04-14
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 yangsnow_rain_wind 的回复:]
SQL code那就是这个!
select replace(replace(replace(CONVERT(varchar, getdate(), 120 ),'-',''),' ',''),':','')
/*
------------
20090414140518
(1 row(s) affected)
*/
[/Quote]

就是这个!


Many thanks!
肥龙上天 2009-04-14
  • 打赏
  • 举报
回复
那就是这个!
select replace(replace(replace(CONVERT(varchar, getdate(), 120 ),'-',''),' ',''),':','')
/*
------------
20090414140518
(1 row(s) affected)
*/
肥龙上天 2009-04-14
  • 打赏
  • 举报
回复

--日期转换参数,值得收藏
select CONVERT(varchar, getdate(), 120 )
2004-09-12 11:06:08

select replace(replace(replace(CONVERT(varchar, getdate(), 120 ),'-',''),' ',''),':','')
20040912110608

select CONVERT(varchar(12) , getdate(), 111 )
2004/09/12

select CONVERT(varchar(12) , getdate(), 112 )
20040912

select CONVERT(varchar(12) , getdate(), 102 )
2004.09.12

其它我不常用的日期格式转换方法:

select CONVERT(varchar(12) , getdate(), 101 )
09/12/2004

select CONVERT(varchar(12) , getdate(), 103 )
12/09/2004

select CONVERT(varchar(12) , getdate(), 104 )
12.09.2004

select CONVERT(varchar(12) , getdate(), 105 )
12-09-2004

select CONVERT(varchar(12) , getdate(), 106 )
12 09 2004

select CONVERT(varchar(12) , getdate(), 107 )
09 12, 2004

select CONVERT(varchar(12) , getdate(), 108 )
11:06:08

select CONVERT(varchar(12) , getdate(), 109 )
09 12 2004 1

select CONVERT(varchar(12) , getdate(), 110 )
09-12-2004

select CONVERT(varchar(12) , getdate(), 113 )
12 09 2004 1

select CONVERT(varchar(12) , getdate(), 114 )
11:06:08.177
肥龙上天 2009-04-14
  • 打赏
  • 举报
回复

这个?
select CONVERT(varchar(12) , getdate(), 112 )
/*
------------
20090414

(1 row(s) affected)
*
yuyunliuhen 2009-04-14
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 josy 的回复:]
20090414105119

这样呢?
[/Quote]

这样解析挺麻烦的,正在查找更简便的方法
yuyunliuhen 2009-04-14
  • 打赏
  • 举报
回复
谢谢各位!
getdate()是设置的默认值,类似日志形式的,然后可以方便的查看时间。
数据都是以包的形式发送的,在客户端不能直接操作数据库,也不能执行SQL语句了吧,
htl258_Tony 2009-04-14
  • 打赏
  • 举报
回复
float是对的,可是DWORD好像是整型的。
htl258_Tony 2009-04-14
  • 打赏
  • 举报
回复
select cast(getdate() as int)
csdyyr 2009-04-14
  • 打赏
  • 举报
回复
--用float
DECLARE @DATE FLOAT
SET @DATE=CAST(GETDATE() AS FLOAT)

SELECT @DATE
SELECT CAST(@DATE AS DATETIME)
/*
----------------------
39915.5822247299

(1 row(s) affected)


-----------------------
2009-04-14 13:58:24.213
*/
百年树人 2009-04-14
  • 打赏
  • 举报
回复
20090414105119

这样呢?
yuyunliuhen 2009-04-14
  • 打赏
  • 举报
回复
typedef unsigned long DWORD;
CeShenBeiWang 2009-04-14
  • 打赏
  • 举报
回复
帮顶!
jinjazz 2009-04-14
  • 打赏
  • 举报
回复
select cast(39915.5764916281 as datetime)
jinjazz 2009-04-14
  • 打赏
  • 举报
回复
select cast(getdate() as float)
加载更多回复(1)
Date 对象属性constructor 返回对创建此对象的 Date 函数的引用。prototype 使您有能力向对象添加属性和方法。Date 对象方法getDate() 从 Date 对象返回一个月中的某一天 (1 ~ 31)。getDay() 从 Date 对象返回一周中的某一天 (0 ~ 6)。getFullYear() 从 Date 对象以四位数字返回年份。getHours() 返回 Date 对象的小时 (0 ~ 23)。getMilliseconds() 返回 Date 对象的毫秒(0 ~ 999)。getMinutes() 返回 Date 对象的分钟 (0 ~ 59)。getMonth() 从 Date 对象返回月份 (0 ~ 11)。getSeconds() 返回 Date 对象的秒数 (0 ~ 59)。getTime() 返回 1970 年 1 月 1 日至今的毫秒数。getTimezoneOffset() 返回本地时间与格林威治标准时间 (GMT) 的分钟差。getUTCDate() 根据世界时从 Date 对象返回月中的一天 (1 ~ 31)。getUTCDay() 根据世界时从 Date 对象返回周中的一天 (0 ~ 6)。getUTCFullYear() 根据世界时从 Date 对象返回四位数的年份。getUTCHours() 根据世界时返回 Date 对象的小时 (0 ~ 23)。getUTCMilliseconds() 根据世界时返回 Date 对象的毫秒(0 ~ 999)。getUTCMinutes() 根据世界时返回 Date 对象的分钟 (0 ~ 59)。getUTCMonth() 根据世界时从 Date 对象返回月份 (0 ~ 11)。getUTCSeconds() 根据世界时返回 Date 对象的秒钟 (0 ~ 59)。getYear() 已废弃。 请使用 getFullYear() 方法代替。parse() 返回1970年1月1日午夜到指定日期(字符串)的毫秒数。setDate() 设置 Date 对象中月的某一天 (1 ~ 31)。setFullYear() 设置 Date 对象中的年份(四位数字)。setHours() 设置 Date 对象中的小时 (0 ~ 23)。setMilliseconds() 设置 Date 对象中的毫秒 (0 ~ 999)。setMinutes() 设置 Date 对象中的分钟 (0 ~ 59)。setMonth() 设置 Date 对象中月份 (0 ~ 11)。setSeconds() 设置 Date 对象中的秒钟 (0 ~ 59)。setTime() setTime() 方法以毫秒设置 Date 对象。setUTCDate() 根据世界时设置 Date 对象中月份的一天 (1 ~ 31)。setUTCFullYear() 根据世界时设置 Date 对象中的年份(四位数字)。setUTCHours() 根据世界时设置 Date 对象中的小时 (0 ~ 23)。setUTCMilliseconds() 根据世界时设置 Date 对象中的毫秒 (0 ~ 999)。setUTCMinutes() 根据世界时设置 Date 对象中的分钟 (0 ~ 59)。setUTCMonth() 根据世界时设置 Date 对象中的月份 (0 ~ 11)。setUTCSeconds() setUTCSeconds() 方法用于根据世界时 (UTC) 设置指定时间的秒字段。setYear() 已废弃。请使用 setFullYear() 方法代替。toDateString() 把 Date 对象的日期部分转换为字符串。toGMTString() 已废弃。请使用 toUTCString() 方法代替。toISOString() 使用 ISO 标准返回字符串的日期格式。toJSON() 以 JSON 数据格式返回日期字符串。toLocaleDateString() 根据本地时间格式,把 Date 对象的日期部分转换为字符串。toLocaleTimeString() 根据本地时间格式,把 Date 对象的时间部分转换为字符串。toLocaleString() 据本地时间格式,把 Date 对象转换为字符串。toString() 把 Date 对象转换为字符串。toTimeString() 把 Date 对象的时间部分转换为字符串。toUTCString() 根据世界时,把 Date 对象转换为字符串。UTC() 根据世界时返回 1970 年 1 月 1 日 到指定日期的毫秒数。valueOf() 返回 Date 对象的原始值。

34,593

社区成员

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

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