PostTime获得了一个被四舍五入为最接近的分钟数。
请大虾们帮忙指点一二。如何把秒数传入。
以下是触发器代码:
CREATE TRIGGER InsertLogs ON dbo.Game_UserLogs
FOR INSERT
AS
BEGIN
DECLARE @UserName varchar(50),@Price decimal(10,2),@Issue varchar(50),@PresentID int,@PostTime datetime,@UserIp varchar(50)
SELECT @UserName=UserName,@Price=Price,@Issue=Issue,@PresentID=PresentID,@PostTime=PostTime,@UserIp=UserIp FROM inserted
EXECUTE ('INSERT INTO Game_UserLogs_' + @Issue + ' (Username,Price,PresentID,PostTime,UserIp) VALUES ('''+@UserName+''','+@price+','+@PresentID+','''+@PostTime+''','''+@UserIp+''')')
END
比如变量@PostTime是2004-10-01 12:12:12
但是在数据库里增加的PostTime字段的数据却是2004-10-01 12:12:00 秒数都被变位0了,精确到了分钟。
@PostTime varchar(50)
-----------
如果你用日期型的插入,字段里也应该要日期型的,
如果你字段里的是字符型的,插入也应该用字符型,
要不然,系统转化的时候,就会出现上面的现象
create table tn(id datetime)
declare @a datetime
set @a='2004-10-01 12:12:12'
insert into tn values( @a)
select * from tn
--结果
2004-10-01 12:12:12.000
--没错啊
把你那个触发器相关的表结构和数据帖出来看看
CREATE TRIGGER InsertLogs ON dbo.Game_UserLogs
FOR INSERT
AS
BEGIN
DECLARE @UserName varchar(50),@Price decimal(10,2),@Issue varchar(50),@PresentID int,@PostTime datetime,@UserIp varchar(50),@PostTimeV datetime
SELECT @UserName=UserName,@Price=Price,@Issue=Issue,@PresentID=PresentID,@PostTime=PostTime,@UserIp=UserIp FROM inserted
EXECUTE ('INSERT INTO Game_UserLogs_' + @Issue + ' (Username,Price,PresentID,PostTime,UserIp) VALUES ('''+@UserName+''','+@price+','+@PresentID+','''+@PostTime+''','''+@UserIp+''')')
END
表Game_UserLogs
3 Id int 4 0
0 UserName varchar 50 1
0 Price decimal 9 1
0 Issue varchar 50 1
0 PresentID int 4 1
0 PostTime datetime 8 1
0 UserIp varchar 50 1
表Game_UserLogs_2004001
3 Id int 4 0
0 UserName varchar 50 1
0 Price decimal 9 1
0 PresentID int 4 1
0 PostTime datetime 8 1
0 UserIp varchar 50 1
Game_UserLogs获得的时间值是完整的。
create table tn(id datetime)
declare @a datetime
set @a='2004-10-01 12:12:12'
insert into tn values( @a)
select * from tn
换成我这个就不行了,你用的命令和我不一样。
declare @a datetime
set @a='2004-10-01 12:12:12'
EXECUTE('insert into tn values( '''+@a+''')')
select * from tn
--结果
2004-10-01 12:12:00.000
set @a='2004-10-01 12:12:12'
EXECUTE('insert into tn values( '''+@a+''')')
select * from tn
--这样得到的是2004-10-01 12:12:12.000
--在execute中,运行的时候,如果@a为时间型的,运行的时候,可能要转为字符型,
declare @a varchar(50)
set @a='2004-10-01 12:12:12'
EXECUTE('insert into tn values( '''+@a+''')')
select * from tn
--这样得到的是2004-10-01 12:12:12.000
----------------------------------------------------
就是说程序要严谨
怎么使用自己查帮助了
@string_variable
是局部变量的名称。@string_variable 可以是 char、varchar、nchar 或 nvarchar 数据类型,最大值为服务器的可用内存。如果字符串长度超过 4,000 个字符,则把多个局部变量串联起来用于 EXECUTE 字符串。有关系统提供的 SQL Server 数据类型更多的信息,请参见数据类型。
[N]'tsql_string'
是一个常量,tsql_string 可以是 nvarchar 或 varchar 数据类型。如果包含 N,则该字符串将解释为 nvarchar 数据类型,最大值为服务器的可用内存。如果字符串长度超过 4,000 个字符,则把多个局部变量串联起来用于 EXECUTE 字符串。
51job那样的弹出层 各位兄弟有没有extjs 或者 jquery的例子发给小弟。谢谢分全给你 LOG日志问题 我的dnw.exe总报内存错误不能用了,谁有最新版DNW.exe或者源程序?? CSDN的广告可信否? 向窗体中输入一个浮点数并显示出来,大家有什么方法?多谢! Struts2初级异常问题 离开页面时执行update语句 我有一些开源的代码怎么在自己的Linux下编译 单线程 多线程 同步 异步四个概念放在一起如何理解? 这样的能升本吗? 求教高手:Hibernate级联删除 mysql数据库 2440开发板GPIO定义如何查看 后花园记事 郁闷,居然提示“使用了未赋值的局部变量” 使用索引,执行计划中显示的成本请高手解答 提个比较低级的问题。如何在vc++6.0的control工具箱中删除自己加载的控件。 C#中结构体指针到底怎么用啊? 嵌入式开发最基本的问题 winform、webform和B/S 、C/S的关系? 怎么判断哪些物体在可见范围之内? Cross-thread operation not valid错误——多线程问题 sqlite create table時是否能設定資料型態或長度呢 从“ULONGLONG”转换到“DWORD”,可能丢失数据 给 kaily1985 童鞋散分。。。 求大师指点..!! VC 写的计算器中如何在按下“=”键之后如果再按数字键时,清空原来显示框中的内容?? 求FTP_628步进电机的程序??急急 SharpPcap,谁知道比较详细 求教高手如何监控Tomcat连接池中的连接状态?