有一个系统中
1、时间格式转换函数
Public Function sj(shj As Date) As String
Dim ti As Date, Y As String, m As String, D As String, h As String, mi As String, S As String, shij As String
ti = shj
Y = Year(ti)
m = Month(ti)
D = Day(ti)
h = Hour(ti)
mi = Minute(ti)
S = Second(ti)
sj = Y + "-" + m + "-" + D + " " + h + ":" + mi + ":" + S
End Function2、相关的调用环节代码如下:
    Dim ShouSJ As Date
    ShouSJ = Now
sql = "Insert into jl (用户编号,购买日期)" + " values (" + CStr(Kahao) +",#" + CStr(sj(ShouSJ)) + "#" + ")"现在出现的问题是:
   近期有客户反映购买日期出现了一些7102-1-1 2:27:57的记录,请问我的日期转换函数会导致此类记录的发生吗,这套软件已经有几百个用户在用,并且已经用了2、3年了,应该是没有问题呀,会不会是病毒导致软件不能获取正常的系统时间,以致产生了此类记录。

解决方案 »

  1.   

    Public Function sj(shj As Date) As String
        sj=format(shj,"YYYY-MM-DD HH:MM:SS")
    End Function
      

  2.   

    只是完成时间格式的转换,不用那么复杂,用这个format最简单有效,另外CStr(sj(ShouSJ)) 这个有问题
    函数sj本身返回的是字符串,不需要再转换Cstr
      

  3.   

    ,#" + CStr(sj(ShouSJ)) + "#" 
    ******************************
    你这个数据类型到底是什么?如果是日期,怎么用CStr?如果是字符串,怎么用CStr?
      

  4.   

    ,#" + CStr(sj(ShouSJ)) + "#"  
    ******************************
    你这个数据类型到底是什么?如果是日期,怎么用CStr?如果是字符串,怎么用##? 
     
      

  5.   


    函数基本上是多余的。sql = "Insert Into jl (用户编号,购买日期) Values (" & CStr(Kahao) & ",#" & Format(Now, "yyyy-mm-dd HH:nn:ss") & "#)"
      

  6.   

    虽然过程写得没有必要,但也看不出因此能得出7102年,可能是ACCESS数据库出错造成的。
      

  7.   

    sj = Y + "-" + m + "-" + D + " " + h + ":" + mi + ":" + S这个就编译不过去. 用 & 代替 + 吧. 
      

  8.   

    cstr(Y) & "-"  该用cstr的地方没用,不需要用的又用了.
      

  9.   

    这个格式转换完全不需要,format就行了。理论来说不应出现7102-1-1 2:27:57的记录
      

  10.   

    LZ别把简单的事情搞复杂了!~~
    还是用format 函数比较好
      

  11.   

              支持!(注意:电脑的日期时间格式最好也设置成YYYY-MM-DD HH:MM:SS这种)
      

  12.   

    建议LZ把MSDN上类型转换那节读下