Informix `%iY` 和 `%Y` 格式有啥区别
Posted
技术标签:
【中文标题】Informix `%iY` 和 `%Y` 格式有啥区别【英文标题】:What is the difference between Informix `%iY` and `%Y` formatInformix `%iY` 和 `%Y` 格式有什么区别 【发布时间】:2017-06-20 14:00:00 【问题描述】:我在一些我维护的代码中发现他们使用这种格式进行更新查询
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
那么我错过了什么?
我查看的资源:
-
https://www.ibm.com/support/knowledgecenter/SSGU8G_11.70.0/com.ibm.sqlt.doc/ids_sqt_130.htm
https://www.ibm.com/support/knowledgecenter/SSGU8G_11.70.0/com.ibm.sqlt.doc/ids_sqt_129.htm
http://www.sqlines.com/informix-to-oracle/to_char_datetime
【问题讨论】:
【参考方案1】:很难找到,但您需要的信息的一个位置(假设您使用 Informix 11.70 而不是 12.10,尽管它可能没有太大变化)是:
Client APIs and Tools — GLS User's Guide — GLS Environment Variables特别是,它说:
%iy
— 替换为两位数 (00 - 99) 的年份,用于阅读和打印。它是针对 %y
的 IBM Informix 特有的格式化指令。
%iY
— 替换为四位数字 (0000 - 9999) 的年份,用于阅读和打印。它是针对 %Y
的 IBM Informix 特有的格式化指令。
…
%y
— 要求年份是两位数(00 到 99),用于阅读和打印。
%Y
— 要求年份是一个四位数(0000 到 9999),用于阅读和打印。
两者之间显然没有太大区别——我什至不确定我是否理解应该有什么区别。我认为这可能是在 1、2 或 3 位数年份数字上接受但不要求前导零之间的区别。但在大多数情况下,您似乎可以将它们视为等价的。
【讨论】:
感谢您找到这个,我希望得到一个明确的答案,我也通过电子邮件发送给 Informix 支持,但仍然没有得到他们的任何答复。以上是关于Informix `%iY` 和 `%Y` 格式有啥区别的主要内容,如果未能解决你的问题,请参考以下文章
定义一个复数(z=x+iy)类Complex,包含: 两个属性:实部x和虚部y 默认构造函数 Complex(),设置x=0,y=0 构造函数:Complex(int i,int j) 显示复数