我将日期/时间数据以“ 6/4/2015 2:08:00 PM
”格式插入CHAR列中。我希望它应该自动转换为format:' 2015-06-04 14:08:00
',以便它可以在查询中使用,因为DATETIME的格式为YYYY-MM-DD hh:mm:ss.fffff
。
如何转换呢?
假设您已经以字符串格式(CHAR或VARCHAR)存储了数据,则必须决定如何使其成为DATETIME YEAR TO SECOND值。为了提高计算效率和存储效率,最好将值存储为DATETIME YEAR TO SECOND值,然后将其转换为输入,并(如有必要)将其转换为输出。但是,如果您经常在不进行计算(包括比较或排序)的情况下显示该值,那么洛可可式语言环境相关的字符串表示法可能就可以了。
将字符串转换为DATETIME值的关键功能是TO_DATE
。您还需要查看该TO_CHAR
函数,因为它记录了您需要使用的格式代码,并且因为要使用该代码将DATETIME值转换为原始格式。
假设列名称为time_string
,那么您需要使用:
TO_DATE(time_string, '%m/%d/%Y %I:%M %x') -- What goes in place of x?
转换为DATETIME YEAR TO SECOND-或DATETIME YEAR TO MINUTE-值(将视需要通过EXTEND对其进行进一步处理)。
我个人几乎可以肯定地将数据库列转换为DATETIME YEAR TO SECOND,并在必要时使用转换为输出的字符串格式TO_CHAR
。列名现在将是time_value
(出于具体性考虑):
TO_CHAR(time_value, '%m/%d/%Y %I:%M %x') -- What goes in place of x?
参考的手册页不会立即导致格式字符串的完整规范。我认为相关参考是GL_DATETIME
环境变量,但是发现这需要Informix产品集的奥秘知识,而不是所需要的(这不是所有人应该想到的第一件事-甚至不是我的想法!)。如果这是正确的(它可能是),然后是一个%p
和%r
应该代替使用%x
在我的例子。我必须在我的机器上配置(重新)配置Informix才能进行测试。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句