在sql server中,一表中有一datetime类型字段,希望该字段只记录几点几分的信息不要年月日的信息,但是当将零点零分钟的时间数据输入到sql server中后变为1900/1/1,非零点零分钟的时间输入其中时变为某年某月某日上午/下午(是繁体系统)几点几分。当查询该表信息时并将其记录集赋给mshflexgrid时该字段的年月日也变显示出来:
请问
1、怎样不让显示年月日显示出来,若用format函数感觉不方便,因为有很多这样类似的字段,一个个用format很麻烦,并且这样不能用set mshflexgrid1.datasource=rs这样的方式赋值。 
2、怎样设置在数据存储时不让存储年月日信息,只存储几点几分钟的信息。

解决方案 »

  1.   

    数据库中存的时候肯定会带有日期的,关键是显示的时候用FORMAT函数格式一下就行了!!
      

  2.   

    Format 函数返回 Variant (String),其中含有一个表达式,它是根据格式表达式中的指令来格式化的。语法Format(expression[, format[, firstdayofweek[, firstweekofyear]]])Format 函数的语法具有下面几个部分:部分 说明
    expression 必要参数。任何有效的表达式。
    format 可选参数。有效的命名表达式或用户自定义格式表达式。
    firstdayofweek 可选参数。常数,表示一星期的第一天。
    firstweekofyear 可选参数。常数,表示一年的第一周。
    设置值firstdayofweek 参数有下面设置:常数 值 说明
    vbUseSystem 0 使用 NLS API 设置。
    VbSunday 1 星期日(缺省)
    vbMonday 2 星期一
    vbTuesday 3 星期二
    vbWednesday 4 星期三
    vbThursday 5 星期四
    vbFriday 6 星期五
    vbSaturday 7 星期六
    firstweekofyear 参数有下面设置:常数 值 说明
    vbUseSystem 0 使用 NLS API 设置。
    vbFirstJan1 1 从包含一月一日的那一周开始(缺省)。
    vbFirstFourDays 2 从本年第一周开始,而此周至少有四天在本年中。
    VbFirstFullWeek 3 从本年第一周开始,而此周完全在本年中。
    说明格式化 作法
    数字 使用预先定义的命名数值格式或创建用户自定义数值格式。
    日期和时间 使用预先定义的命名日期/时间格式或创建用户自定义日期/时间格式。
    日期和时间序数 使用日期和时间格式或数值格式。
    字符串 创建自定义的字符串格式。
    如果在格式化数字时没有指定 format,Format 会提供与 Str 函数类似的功能,尽管它是国际化的。然而,以 Format 作用在正数上不会保留正负号空间,而以 Str 
    的话则会。============================================================================本示例显示用 Format 函数做格式化输出的不同用法。对于日期分隔号(/),时间分隔号(:),以及 AM/ PM 等文本而言,其真正的显示格式会因计算机上的国际标准不同而有所差异。在开发阶段,日期与时间是以短日期的格式,配合代码的国际标准来显示的。而在运行时,短日期则是根据系统的国际标准而定,而系统的国际标准和代码的国际标准可能并不相同。本示例中是假设国际标准为 English/United States。
    MyTime 及 MyDate 在开发环境下,使用系统的短日期设置显示出来的。Dim MyTime, MyDate, MyStr
    MyTime = #17:04:23#
    MyDate = #January 27, 1993#' 以系统设置的长时间格式返回当前系统时间。
    MyStr = Format(Time, "Long Time")' 以系统设置的长日期格式返回当前系统日期。
    MyStr = Format(Date, "Long Date")MyStr = Format(MyTime, "h:m:s") ' 返回 "17:4:23"。
    MyStr = Format(MyTime, "hh:mm:ss AMPM") ' 返回 "05:04:23 PM"。MyStr = Format(MyDate, "dddd, mmm d yyyy") ' 返回 "Wednesday, Jan 27 1993"。
    ' 如果没有指定格式,则返回字符串。
    MyStr = Format(23) ' 返回 "23"。' 用户自定义的格式。
    MyStr = Format(5459.4, "##,##0。00") ' 返回 "5,459.40"。
    MyStr = Format(334。9, "###0。00") ' 返回 "334.90"。MyStr = Format(5, "0。00%") ' 返回 "500.00%"。
    MyStr = Format("HELLO", "<") ' 返回 "hello"。
    MyStr = Format("This is it", ">") ' 返回 "THIS IS IT"。
      

  3.   

    若用format 函数格式下就不能用set mshflexgrid.datasource=rs(rs记录集是这样rs.open “select * from test”,cn,…产生的)这样方便的赋值了,再没其它方法了?
      

  4.   

    我被SQL97的datetime字段玩过一回以后.
    所有日期的数据类型全让我存到varchar字段里了!
      

  5.   

    SELECT ltrim(rtrim(str(DATEPART(hh, JOINDATE)))) + ':' + ltrim(rtrim(str(DATEPART(n, JOINDATE)))) + ':' + ltrim(rtrim(str(DATEPART(ss, JOINDATE)))) FROM TABLENAMEJOINDATE:为表中的日期字段名!!
      

  6.   

    Thank Cuizm for your help. give you ten fen cent