to gzhughie(hughie): 因为我的日期是用函数取得的,其返回值年份为2位,而且该函数在很多地方用到,改起来不是很方便,是否有其他更有效的方法,例如设置一下参数等.
SQL Server会自动把合法的字符类型转换为日期类型的 带日期时间类型可以这样 update test set aa = convert(datetime,'02-12-26 11:11:12') 只带日期可以这样 update test set aa = convert(varchar(10),convert(datetime,'02-12-26 11:11:12'),120)
我的问题是这样的,我有一个datetime型变量ld_date, 该变量通过函数得到当前日期及时间,ld_date = now(),然后我用update更新数据库中的日期,update test set aa = ld_date, 此时ld_date中的日期格式为'02-12-26 11:11:12',即2002年12月26日, 而写到数据库中则变为2026年02月12日,我不知道怎么会这样,有没有什么较简单的方法处理,例如设置一下参数.
你函数的返回值一定不是'02-12-26 11:11:12'这样的格式,如果是这样的格式,是不会出错的,你是用其他编程语言写的函数吧,不同的语言可能对日期的计算方法不同,所以你在程序里可能看到的日期是'02-12-26 11:11:12',但转到另一种语言时,就不同了。 你的目的是不是得到当前值,如果是这样,建议你UPDATE的语句改为这样 update test set aa =GETDATE() 用SQL自带的函数GETDATE()得到当前时间,你觉得怎么样。
to gzhughie(hughie): 你的建议不错,但我想搞清楚是怎么回事,我用的是asp里的函数now(), 其返回值 千真万确是'02-12-26 11:11:12', 因为我在sql server中直接执行sql语句update test set aa ='02-12-26 11:11:12',其结果也是2026-02-12, 这个问题真是太奇怪了.但不管怎么,还是谢谢各位的帮忙.
因为我的日期是用函数取得的,其返回值年份为2位,而且该函数在很多地方用到,改起来不是很方便,是否有其他更有效的方法,例如设置一下参数等.
带日期时间类型可以这样
update test set aa = convert(datetime,'02-12-26 11:11:12')
只带日期可以这样
update test set aa = convert(varchar(10),convert(datetime,'02-12-26 11:11:12'),120)
你的目的是不是得到当前值,如果是这样,建议你UPDATE的语句改为这样
update test set aa =GETDATE()
用SQL自带的函数GETDATE()得到当前时间,你觉得怎么样。
你的建议不错,但我想搞清楚是怎么回事,我用的是asp里的函数now(), 其返回值
千真万确是'02-12-26 11:11:12', 因为我在sql server中直接执行sql语句update test set aa ='02-12-26 11:11:12',其结果也是2026-02-12, 这个问题真是太奇怪了.但不管怎么,还是谢谢各位的帮忙.
'2002-12-26 11:11:12'然后在用
SQL语句