|
5
|
| CheeseConQueso · 技术社区 · 16 年前 |
|
|
1
8
请注意,网站上有有用的信息 SO 440061 关于在12小时和24小时之间转换时间符号(与此转换相反);这不是小事,因为凌晨12:45比凌晨1:15早半个小时。 接下来,请注意Informix(IDS Informix Dynamic Server)7.31版终于在2009年9月30日结束服务;它不再是受支持的产品。 你应该更准确地说出你的版本号;例如,7.30.UC1和7.31.UD8之间有相当大的差异。 但是,您应该能够使用 TO_CHAR() 函数可根据需要格式化时间。虽然这是指 IDS 12.10 Information Center ,我相信您将能够在7.31中使用它(不一定在7.30中使用,但您不应该在过去十年的大部分时间使用它)。 有一个用于24小时的“%R”格式说明符,它说。它也指的是你的 GL_DATETIME ,其中显示“%I”表示12小时的时间,“%p”表示am/pm指示器。我还找到了一个IDS的7.31.UD8实例来验证这一点:
通过重读这个问题,我发现实际上,SMALLINT值在0000..2359范围内,需要对其进行转换。通常,我会指出Informix有一种存储此类值的类型—DATETIME小时到分钟—但我承认它在磁盘上占用了3个字节,而不是2个字节,因此它不像SMALLINT表示法那样紧凑。 Steve Kass展示了SQL Server符号:
转换为Informix for IDS 11.50,假设该表为:
示例结果:
现在,这是在IDS11.50上测试的;IDS7.3x没有强制转换符号。 然而,这不是问题;下一个评论是关于。。。
Informix“[2,3]”符号是子字符串运算符的原始形式;原语,因为(出于我仍然无法理解的原因)下标必须是文字整数(不是变量,不是表达式)。它正好在这里有用;总的来说,这是令人沮丧的。
要说明表达式和存储过程(上的次要变量)的等价性,请执行以下操作:
这将产生以下结果:
此存储过程现在可以在ACE报告中的单个SELECT语句中多次使用,无需进一步ado。 在原始海报上关于不工作的评论之后。。。 ]
这是在Solaris 10上的IDS 7.31.UD8上测试的,并且工作正常。我不理解报告的语法错误;但是存在版本依赖的外部可能性——确实如此 总是 |
|
|
2
3
mjv的第二次尝试仍然不起作用。(例如,对于0001,它给出0:1 am。) 这里有一个T-SQL解决方案,它应该工作得更好。它可以通过使用适当的语法进行连接和子串来适应其他方言。 它也适用于军事时间2400(上午12:00),这可能是有用的。
|
|
|
3
3
未经测试 史蒂夫·卡斯港的解决方案 Informix . Steve的解决方案本身在MS SQL Server下经过了良好的测试。与以前的解决方案相比,我更喜欢它,因为 转换为am/pm时间仅以代数方式完成 不需要任何人的帮助 分支 如果数字“军事时间”来自数据库,则用列名替换@milTime。@变量仅用于测试。
以下是我的[fixed],基于案例的SQL Server解决方案,仅供参考
|
|
|
4
3
啊,Jenzabar的一位用户(Jonathan,不要对模式太残酷,它们已经有几十年的历史了)。很惊讶你没有在CX技术列表上问这个问题。我已经向您发送了一个用于CX的RCS就绪存储过程。 -西南
|
|
|
5
1
对于informix不太确定,下面是我在Oracle中要做的事情(一些示例,但由于我在家里没有经过测试):
Oracle的To_Date和To_Char是专有的,但我确信有一些标准的SQL或Informix函数可以实现相同的结果,而不必求助于“计算”。 |
|
|
6
1
CheeseWithCheese说这必须在ACE报告中完成,所以这是我的ACE报告。。。 在ACE中将军事小时smallint转换为AM/PM格式的示例:
|
|
|
7
0
长期方法。。。但有效
|
|
|
malife89 · 将java中的字符串读取为正确的日期格式 1 年前 |
|
|
Jas Mahay · 使用日期和日历:需要社区帮助来提高工作表的效率 2 年前 |
|
|
ViSa · 如何从Pandas的列中提取日期? 2 年前 |
|
|
Wolfspirit · 你如何确定一个时间点是否在一个时间段内? 2 年前 |
|
Steven · Python的美国/纽约时间偏移显示-04:56 2 年前 |