我有一个要求,我要获取两个ISO 8601时间戳格式的字符串,并且必须对其进行比较并获取它们的最大时间戳。字符串采用以下格式。
2014-06-11T16:45:45Z
为了进行比较,我需要将它们转换为DB2时间戳,然后进行比较。问题出在“ T”和“ Z”字母上。因此,我无法施展。我知道我可以简单地
REPLACE
将T和Z进行转换,但是我想知道是否有更好的方法。
我尝试了以下功能,但无法获得所需的结果。
to_date, to_timestamp, varchar_format, cast as
使用DB2 LUW v9.7
首先,这是一个好消息:您的值是可保存的,就是将它们简单地比较 为字符串
将返回正确的结果(MAX(...)
将根据需要工作)。这对转换无济于事,但至少它仍会吐出“更大”的值。
对于投射,您可以在这里做几件事。
首先,只要您的日期/时间部分保持该格式,单独获取它们并重新组合时间戳可能会更容易:
TIMESTAMP(SUBSTR(@inputParm, 1, 10), SUBSTR(@inputParm, 12, 8)) AS resultTimestamp
LUW还具有一个称为TIMESTAMP_FORMAT的函数(TO_TIMESTAMP
从技术上讲,这是同义词)。我假设系统实际上在阻塞您输入数据中没有小数秒的事实。我建议尝试这样的事情:
TIMESTAMP_FORMAT('YYYY-MM-DD HH24:MI:SS ', @inputParm)
但是,更好的选择可能是让调用您的数据库的人传入以atimestamp
而不是a形式输入的参数string
-这意味着您根本不必执行任何转换方法。
问题内容: 我正在开发一个具有聚类列的时间序列数据模型,即 我希望针对分区列“ id”和集群列“ time”执行选择。例如,id:=‘1’,时间戳:=‘2017-10-09’ 检查iterable.Close()的err后,发现编组错误 {“错误”:[“无法将字符串编组为时间戳”]} 我该如何解决? 问题答案: 这是我最后通过将字符串文字(带有时间戳)转换为类型time来解决此问题的方法。
在我的数据集中,我有一个变量< code>duration,其中有200万行< code>ISO 8601格式的数据。示例格式:< code>PT21S或< code>PT5M29S,< code>PT1M16S 我在将此字符串变量转换为时间时遇到问题。目前我正在使用查询: 通过该查询,可以区分持续时间是小时、分钟还是秒。我想将字符串持续时间转换为时间。我用过Regex和cast,但没有成功。当我
问题内容: 我需要将时间戳字符串转换为。例如: 至 这里是月,日期,年,小时,分钟和秒。 问题答案: 您 可以 这样做: 但我 强烈 建议您改用Joda Time。从长远来看,它是一个更好的日期/时间库。特别是,Joda Time中的格式化程序/解析器是线程安全的,因此您可以自由和静态地重用它们。 不是 线程安全的,因此您需要为每个线程创建一个线程,或使用一个块序列化对其的访问。
我知道这是一个非常常见的问题,但我觉得我找到的答案并没有真正解决问题。我将概述我的具体用例,并对来自其他SO答案和网络的信息进行总结。 对于我正在编写的服务,数据库条目被创建并存储在移动设备和我们的网站上,需要以两种方式同步。我们目前的目标是Android和iOS,它们都使用sqlite作为关系数据库。服务器端是使用Django和MySQL在Python中实现的,但将来可能会有其他解决方案取代它。
问题内容: 如何将以下格式转换为Unix时间戳? 我从数据库获得的格式似乎最后有。我尝试使用以下方法,但没有用: 问题答案: 试试这个查询 此查询