如何SQL Server 获取当前时间毫秒级

lurenyi 2008-12-14 01:49:57
在查询分析器中使用SELECT GETDATE() 可以获得毫秒级的时间2008-12-14 13:33:27.467,而在存储过程中使用GETDATE()获取的时间赋给时间字段项的是2008-12-14 13:33:27,如何才能在表的时间字段项上获取毫秒级的时间。
...全文
6791 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
yilaozhuang 2010-02-27
  • 打赏
  • 举报
回复
刚好要用毫秒,学习下
lurenyi 2008-12-14
  • 打赏
  • 举报
回复
结贴了,Datetime类型在表里显示只能到秒,要显示毫秒需要转换成字符串类型,
convert(varchar(23),getdate(),121)
。多谢各位。
lurenyi 2008-12-14
  • 打赏
  • 举报
回复
直接执行下面这个存储过程,向表里面插入数据,结果在日期字段项里面显示的就只到秒,毫秒的丢哪里了俺也没有搞清楚
CREATE PROCEDURE [insert_EventLog]
(
@事件源_2 [char](20),
@事件类型_3 [int],
@事件描述_4 [varchar](500))

AS
INSERT INTO [ygz_Log].[dbo].[EventLog]
( [日期], ---Datetime类型
[事件源],
[事件类型],
[事件描述])

VALUES
Getdate(),
@事件源_2,
@事件类型_3,
@事件描述_4)
linguojin11 2008-12-14
  • 打赏
  • 举报
回复
你赋过去的时候是不是转成字符串时给截断了。。
sgtzzc 2008-12-14
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 lurenyi 的回复:]
同样的语句在查询分析里面都是带毫秒的时间,在企业管理器里面的表的字段项选择datetime结果依然还是没有毫秒的。是不是需要在什么地方设置,使得系统时间显示带毫秒,那样我调用datetime函数获取的结果保存在表里面也就具有毫秒的显示了?
[/Quote]

你表里的数据是怎么插进去的?是不是插进去的时候把毫秒截掉了?
mjtalhx 2008-12-14
  • 打赏
  • 举报
回复
不太明白
lurenyi 2008-12-14
  • 打赏
  • 举报
回复
同样的语句在查询分析里面都是带毫秒的时间,在企业管理器里面的表的字段项选择datetime结果依然还是没有毫秒的。是不是需要在什么地方设置,使得系统时间显示带毫秒,那样我调用datetime函数获取的结果保存在表里面也就具有毫秒的显示了?
-狙击手- 2008-12-14
  • 打赏
  • 举报
回复
CREATE PROCEDURE [insert_EventLog]
(
@事件源_2 [char](20),
@事件类型_3 [int],
@事件描述_4 [varchar](500))

AS


INSERT INTO [ygz_Log].[dbo].[EventLog]
( [日期],
[事件源],
[事件类型],
[事件描述])

VALUES
( convert(varchar(23),getdate(),121), -- 这儿直接用getdate() @事件源_2,
@事件类型_3,
@事件描述_4)
GO

lurenyi 2008-12-14
  • 打赏
  • 举报
回复
下面这个存储过程如何实现存储到表里面日期字段的是具有毫秒的时间?
CREATE PROCEDURE [insert_EventLog]
(
@事件源_2 [char](20),
@事件类型_3 [int],
@事件描述_4 [varchar](500))

AS
INSERT INTO [ygz_Log].[dbo].[EventLog]
( [日期],
[事件源],
[事件类型],
[事件描述])

VALUES
Getdate(),
@事件源_2,
@事件类型_3,
@事件描述_4)
GO
  • 打赏
  • 举报
回复
to LZ:
你表中的 [日期] [datetime] NULL 已经是日期型的了,为什么还要convert(varchar(23),getdate(),121)先把日期转成字符串,再转成日期的?

直接getdate()就行了。参照3楼

lurenyi 2008-12-14
  • 打赏
  • 举报
回复
是不是日期字段选择datetime类型就不可以显示出毫秒,只是支持到秒,如果需要毫秒就需要使用转换函数把getdate()的结果转换成字符串?
lurenyi 2008-12-14
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 you_tube 的回复:]
你上面的表定义[日期] 是 [datetime]类型,convert(varchar(23),getdate(),121)这句要重新把它转换成日期类型
[/Quote]

明白了,就是说又转换了一次。
现在就是想让getdate()函数的结果存放到我的表的日期字段里有毫秒数,该如何实现?
wap21 2008-12-14
  • 打赏
  • 举报
回复
不懂,帮顶
you_tube 2008-12-14
  • 打赏
  • 举报
回复
你上面的表定义[日期] 是 [datetime]类型,convert(varchar(23),getdate(),121)这句要重新把它转换成日期类型
you_tube 2008-12-14
  • 打赏
  • 举报
回复
创建的表
SQL code

CREATE TABLE [dbo].[EventLog] (
[序号] [bigint] IDENTITY (1, 1) NOT NULL ,
[日期] [datetime] NULL ,
[事件源] [char] (20) COLLATE Chinese_PRC_CI_AS NULL ,
[事件类型] [int] NULL ,
[事件描述] [varchar] (500) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY]
修改后的存储过程
SQL code

CREATE PROCEDURE [insert_EventLog]
(
@事件源_2 [char](20),
@事件类型_3 [int],
@事件描述_4 [varchar](500))

AS


INSERT INTO [ygz_Log].[dbo].[EventLog]
( [日期],
[事件源],
[事件类型],
[事件描述])

VALUES
Getdate(),
@事件源_2,
@事件类型_3,
@事件描述_4)
GO

这样就可以了

you_tube 2008-12-14
  • 打赏
  • 举报
回复
create table test(col1 datetime)
go
create proc Pro_test
as
insert into test
select convert(varchar(23),getdate(),121)
end
go
exec pp1

or
create proc Pro_test
as
inset into test
select getdate()
end
lurenyi 2008-12-14
  • 打赏
  • 举报
回复
按照各位的意见,做了个测试还是不成功

创建的表

CREATE TABLE [dbo].[EventLog] (
[序号] [bigint] IDENTITY (1, 1) NOT NULL ,
[日期] [datetime] NULL ,
[事件源] [char] (20) COLLATE Chinese_PRC_CI_AS NULL ,
[事件类型] [int] NULL ,
[事件描述] [varchar] (500) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY]

修改后的存储过程

CREATE PROCEDURE [insert_EventLog]
(
@事件源_2 [char](20),
@事件类型_3 [int],
@事件描述_4 [varchar](500))

AS


INSERT INTO [ygz_Log].[dbo].[EventLog]
( [日期],
[事件源],
[事件类型],
[事件描述])

VALUES
( convert(varchar(23),getdate(),121),
@事件源_2,
@事件类型_3,
@事件描述_4)
GO


执行这个存储过程日期里面获得的时间还是没有毫秒的时间,如何让日期字段里面显示毫秒时间?
xiaojing7 2008-12-14
  • 打赏
  • 举报
回复
帮助中---Convert()
  • 打赏
  • 举报
回复

declare @t table(testtime datetime)

insert into @t
select getdate()
select * from @t
2008-12-14 14:58:35.077


declare @t1 table(testtime smalldatetime)

insert into @t1
select getdate()
select * from @t1
2008-12-14 14:59:00

把你表中该列的数据类型改为datetime型
那城 2008-12-14
  • 打赏
  • 举报
回复
select convert(varchar(23),getdate(),121)
加载更多回复(1)

34,594

社区成员

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

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