asp日期填加到数据库中的格式问题

来源:百度知道 编辑:UC知道 时间:2024/06/07 17:37:05
取服务器日期填加到数据库中时每月的1至12号的格式和服务器格式不一样。比如服务器格式为2009-11-9(2009年11月9日),而填加到数据库就变成了2009-9-11。就每月的1至12号是这种情况,13至31号就正常了。这样导致查询时有问题。肯请高手给予指点。
我用的access数据库,'#"&Date&"#'取日期,在服务器上设置时间格式为YYYY-MM-DD,则ACCESS中1至12日的格式变成YYYY-DD-MM,其他正常;如果在服务器上设置时间格式为YYYY-DD-MM,则ACCESS中的1至12日变成了YYYY-MM-DD,就这样,真是莫名其妙。

能有这事?

我想你可能将两个系统的时间弄混了,然后出现的这种情况.

如函数now(),这有两个的,一个是SQL中的,也就是本身的数据库使用的函数,一个是来源于ASP中的VB/VBS语法系统的.一个比如一个SQL语法你看一下两者的区别:

sql="update table1 set [datetime]=now() where table1.colume1 = '"&con1&"'"
sql ="update table1 set [datetime]='#"&now()&"#' where table1.colume1 ='"con1&"'"
当然这里是以ACCESS为例子的,因为第二句的时间特征是在ACCESS中用的.两者有区别吗?这里的区别就是now()这个函数!第一个时间now()来源于ACCESS数据库,你如果使用的是ACCESS的话,利用ACCESS中的查询器可以使用select Now()语句得到当前的系统时间的!
而如果在是VB/VBS中也可以使用now()或是now得到当前提时间的如:response.write now
但这两个还是有区别的,两者虽然都是取的系统时间,但这是两个不同的时间系统,如果你取的是ACCESS的时间为YYYY-MM-DD时,在输入值时,ACCESS会自动进行一种判定,在ACCESS中输入"2009-9-11"会被认定为2009年9月11号,但如果你输入了"2009-14-11"时,由ACCESS自动换为自己的格式,它会认为是2009年11月14号,而不是认定14月11号,因为这个超出会引起一个自动格式的转换的.除非你输入的真是一个都大于12的值时无法转换而抛出意外.行了,这个讲完了!
再过来看一下语言的,若在VB/VBS中设置的日期格式是YYYY-DD-MM时这样就有问题了!假定你的now是来源于VB/VBS,比如说是currentDate = now()或者进行了一个日期的格式,只保留了日期,也就是说这样由于VB/VBS使用的是