Informix`%iY`和`%Y`格式有什么区别

时间:2017-06-20 14:00:00

标签: informix

我在一些代码中发现我维护他们使用这种格式进行更新查询

UPDATE X=to_date('$var','%iY-%m-%d %H:%M:%S.%F3') ...

但我在Informix文档中找不到i的用途。运行下一个查询将得到相同的值。

SELECT TO_CHAR(CURRENT, '%Y-%m-%d %H:%M:%S%F3')  as wo_I, 
       TO_CHAR(CURRENT, '%iY-%m-%d %H:%M:%S%F3') as with_I FROM X; 

wo_i                    | with_i
------------------------|------------------------
2017-06-20 16:49:44.712 | 2017-06-20 16:49:44.712

那么我错过了什么?

我查看的资源:

  1. https://www.ibm.com/support/knowledgecenter/SSGU8G_11.70.0/com.ibm.sqlt.doc/ids_sqt_130.htm
  2. https://www.ibm.com/support/knowledgecenter/SSGU8G_11.70.0/com.ibm.sqlt.doc/ids_sqt_129.htm
  3. http://www.sqlines.com/informix-to-oracle/to_char_datetime

1 个答案:

答案 0 :(得分:4)

这很难找到,但是您需要的信息的一个位置(假设您使用Informix 11.70而不是12.10,尽管它可能没有太大变化)是:

特别是,它说:

  • %iy - 将年份替换为两位数字(00 - 99),用于阅读和打印。它是特定于IBM Informix的格式指令%y
  • %iY - 由年份替换为四位数字(0000 - 9999),用于阅读和打印。它是特定于IBM Informix的格式指令%Y
  • ...
  • %y - 要求年份为两位数字(00至99),供阅读和打印使用。
  • %Y - 要求年份为四位数字(0000至9999),供阅读和打印使用。

两者之间显然没有太大区别 - 我甚至不确定我理解应该是什么区别。我认为接受但不要求在1,2或3位数字年份的前导零之间存在差异。但在大多数情况下,似乎你可以将它们视为等同物。