我的程序里涉及好多个时间信息。
开始我全都是用日期时间格式,在最后做管理员综合修改的时候出错误了,有的时间字段是空的,这时我综合写一个修改语句就行不通了,当输入为空的时候就弹错,可我要是一条语句一条语句的写,就是如果这个字段需要录入空,就写成update……sj is null(这时别人告诉我的,我还没用过呢),然后另一个字段呢,就再写一个update sj2 is null。
这样的话我要写好多呢。于是我自己想出个方法,把这些日期时间格式全改为字符串格式,这样录入为空也不会出错了。可又出现问题了,现在要对任何一个字段进行时间段查询。字符串格式的话,就查询不出来,上网查说用cdatetime(sj),可一写进去,说cdatetime未定义,怎么定义啊?我不会定义啊。接下来要做的是,两个时间字段相减,算出这两个时间差,好计算金额,比如sj1是2010-4-7 15:09:00,sj2是2010-4-11 15:43:49,算这两个时间之间有多少个小时,再计算。这个我还没做呢。请问,我到底是用日期时间格式好,还是字符串格式好?
都不敢继续往下编了!!

解决方案 »

  1.   

    我一般用格式化的字符格式(如2010-09-10).这样便于数据库的移植(不同数据库日期格式可能不同),时间的计算,可用delphi来做(delphi用strtodatetime成日期的),也可用SQL来做(SQL用cast函数,好像access也有)
      

  2.   

    同意lhylhy,如改用字符类型,则查询或运算很不方便
    1、不同的DBMS日期时间类型实现有差异(上面已提到)
    2、注意Windows控制面板,区域设置中的日期时间格式的表示法
      

  3.   

    access里面日期格式是#2010-1-1# 要包含在一队#中
      

  4.   

    恩,我改成日期时间格式了。
    我是用delphi连access的,刚才试了一下,两个时间段之间的差怎么求啊,没做出来啊!我是日期和时间在同一个字段里。
    我查说用IncHour的,怎么用啊,给个例子好不?
      

  5.   

    Access日期型可直接使用+/-运算符

    SELECT now() + 1