一个字段属性在access中被设置成短时间格式,但是,在table 里填写的话,会显示成
1899-12-31 xx:xx:xx 如何解决??

解决方案 »

  1.   

    将access里时间字段设为字符串
    程序处理时间为字符串后写入access2、常用函数和过程
        2.1 Date函数
            function Date: TDateTime;
            返回当前的日期,实际类型是TDateTime,也就是小数部分为0的DateTime值,小数部分为0代表什么意思呢?根据TDateTime的概念我们知道这代表午夜也就是0点。
        2.2  DateToStr
           函数的形式:function DateToStr(Date: TDateTime): string;
           返回值是个字符串,很有用吧。不过,别高兴的太早,如果你用DateToStr(DateTimePicker.Date),你会发现返回的字符串可能是“04-22-03”,这是为什么呢?这是因为delphi内部有一些系统变量用来定义数字、货币、日期的格式,这些变量delphi称为Currency and date/time formatting variables,有23个。我也没有完全看懂,这里讲几个我搞明白的说说。
               var ThousandSeparator: Char;
               千分位的符号,一般都是西文的逗号“,”,默认值存放在LOCALE_STHOUSAND变量中(位于windows单元)
               var DecimalSeparator: Char;
               小数点的符号,一般都是西文的句号“.”,默认值存放在变量LOCALE_SDECIMAL中
               var CurrencyDecimals: Byte;
               小数点后面保留的位数,一般是2位,默认值存放在变量LOCALE_ICURRDIGITS中
               var DateSeparator: Char;
               日期的分隔符号,一般使用“-”或“.”,默认值为“-”,默认值存放在变量LOCATE_SDATE中
               var ShortDateFormat: string;
               短日期格式,一般是“yyyy.mm.dd”,默认值存放在变量LOCALE_SSHORTDATE中
               var LongDateFormat: string;
               长日期格式,一般是“yyyy.mm.dd”,默认值存放在变量LOCALE_SLONGDATE中
               var TimeSeparator: Char;
               时间的分隔符,一般是西文的分号“:”,默认值就是这个,默认值存放在变量 LOCALE_STIME中
               var TimeAMString: string;
               表示上午的字符串,默认为“AM”,默认值存放在变量LOCALE_S1159中
               var TimePMString: string;
               表示下午的字符串,默认为“PM”,默认值存放在变量LOCALE_S2359中
               var ShortTimeFormat: string;
               短时间格式,默认值存放在变量LOCALE_ITIME LOCALE_ITLZERO中
               var LongTimeFormat: string;
               长时间格式,一般为“hh:mm:ss”,默认值存放在变量LOCALE_ITIME and LOCALE_ITLZERO中
          所以,如果想开发一个稳健的系统,那么这些系统变量必须要在进入系统的时候进行初始化,下面是我得代码:
              SysLocale.PriLangID:=LANG_CHINESE;
              DateSeparator:='.';
              LongDateFormat:='yyyy.mm.dd';
              ShortDateFormat:='yyyy.mm.dd';
              TimeSeparator:=':';
              LongTimeFormat:='hh:nn:ss';
              TimeAMString:='上午';
              TimePMString:='下午';
          大家一定奇怪,为什么我的LongDateFormat和ShortDateFormat是一样的,老实讲,我也希望能够区分长短日期的格式,但是由于有些关于TDateTime的例程在类型转换的时候要参考ShortDateFormat,所以只能设置成一样的了。
          还是继续说DateToStr函数。其他没什么特别的,需要注意的是此函数是根据ShortDateFormat来进行转换的,所以ShortDateFormat我只能设为“yyyy.mm.dd”
          说道了DateTimePicker,注意在它的format属性中设置显示格式的时候月份要用“MM”而不是我们通常认为的“mm”。
        2.3 StrToDate函数
            function StrToDate(const S: string): TDateTime;
            这个函数可以看成是DateToStr的逆函数,作用就是把一个字符串转换为TDateTime,参数S必须包括2个或3个数字,用DateSeparator所定义的分隔符分隔,年月日的顺序和格式遵从ShortDateFormat。如果输入的参数不符合日期类型的规定系统会触发EConvertError例外。
        2.4 DateTimeToStr函数
            function DateTimeToStr(DateTime: TDateTime): string;
            把TDateTime转换为字符串,日期格式遵从ShortDateFormat,时间格式遵从LongTimeFormat,如果TDateTime的小数部分是0的话,那么返回的字符串中将没有时间部分。
        2.5 StrToDateTime函数
            function StrToDateTime(const S: string): TDateTime;
            这个函数可以看作是DateTimeToStr函数的逆函数,和StrToDate差不多。
        2.6 DateTimeToString过程
            procedure DateTimeToString(var Result: string; const Format: string; DateTime: TDateTime);
            这个过程的作用和DateTimeToStr和DateToStr一样,特别的地方是可以指定TDateTime的格式,这样就可以得到我们指定格式的日期型字符串了。