卡梅伦麦克沃伊家破产:我的asp里为什么使用now()总是有错?而只能用date()代替?
请各位赐教,谢谢!
你编个test.asp包含下面内容运行一下就知道了
<%=now()%><br>
<%=date()%>
我这里的输出是:
2006-3-10 晚上 23:09:41
2006-3-10
可以看到now()是包含时间的,而date()只包含日期
因为时间你可能有其他格式定义,比如用WINDOWS优化大师加的时间格式(像我就加了"晚上"两个字),或者是你的时间格式和标准格式不同(如你的时间格式为"23:09:41 3-10-2006"),导致生成的时间字符串无法被SQL识别.
SQL很笨的,一般来说它只识别"yyyy-mm-dd hh-mm-ss"格式的时间,除非你在SQL里定义其他的格式.
如果你的程序经常出问题,可以有三种办法:
1.在传输给数据库的时候,在字符串两边加上"#"
2.通过下面程序生成标准的时间格式:
Time_Temp = Now()
Year_Temp = Year(Time_Temp)
Month_Temp = Month(Time_Temp)
Day_Temp = Day(Time_Temp)
Hour_Temp = Hour(Time_Temp)
Minute_Temp = Minute(Time_Temp)
Second_Temp = Second(Time_Temp)
Time_String = Year_Temp & "-" & Month_Temp & "-" & Day_Temp & " " & Hour_Temp & ":" & Minute_Temp & ":" & Second_Temp
最后把Time_String传递给数据库.
3.这是最后一种也是最好的办法,如果你的程序需要使用当前时间,强烈建议你在SQL的脚本或者存储过程里使用getdate()函数获取当前时间.
字符串转换为 datetime 时发生语法错误,说明在转换时没有转换为时间格式,仅仅转换为日期格式。或数据库字段数据格式不正确,改用SMALLDATETIME的数据格式。
那是因为你传递给函数的字符串有问题,好好查看一下Date()函数和Now()函数的用法
不管是查询还是添加还是删除记录,只要涉及到日期的,并且你的数据库中相应的字段也是“日期时间”类型,都要使用“#”符号将用now()或者date()产生的时间包在里面,如:
insert into biao(name_,info_,adddate) values('神仙','妖怪?谢谢!',#" & now() & "#)
这个是数据库的问题
因为ACCESS数据库和MSSQL数据库的时间格式不一致造成的
看看是不是在输入的格式上有问题(1900-01-01)这样是正确的,再看看你的字段是不是日期型。