我第一次使用DB2数据库。
我尝试使用DB2日期,但数据在DB2数据库中存储为字符串。
我想把这个日期字符串转换成一个实际的日期,最好是下降时间,因为我希望所有的交易在2011年1月1日和26日1月2011年。
所以,我想让DB2中的MS SQL语句变魔术……
CONVERT(datetime,SETTLEMENTDATE.VALUE,103)
作为背景资料,我已经了解到
CAST(SETTLEMENTDATE.VALUE, DATE)
与
DATE(SETTLEMENTDATE.VALUE)
但我需要DB2神童的专业知识!
谢谢
6条答案
按热度按时间fjnneemd1#
根据您自己的回答,我猜您的专栏中的数据格式如下:
日/月/年之间的实际分隔符并不重要,年之后的任何分隔符也不重要。
您没有说您正在使用的DB2的哪个版本或者它运行在哪个平台上,所以我假设它运行在Linux、UNIX或Windows上。
几乎任何最新版本的DB2 for Linux/UNIX/Windows(8.2或更高版本,甚至可能是更早的版本),都可以使用
TRANSLATE
函数来完成此操作:有了这个解决方案,列中的日期之后是什么并不重要。
在DB2 9.7中,还可以使用
TO_DATE
函数(类似于Oracle的TO_DATE):这要求您的数据与格式化字符串匹配;它更容易理解,但不如翻译选项灵活。
li9yvcax2#
我知道它的旧职位,但我仍然想贡献
如果你有这样的数据格式,上面的内容将不起作用
'YYYMMDD'
例如:
所以我试着跟随,以获得想要的结果。
另外,如果您想运行从MSSQL链接服务器到DB2的查询(只显示100行)。
以上查询结果:
希望这对其他人有帮助。
vof42yt13#
在format函数中,你可以使用timestamp_format函数。例如,如果格式是YYYYMMDD,你可以这样做:
然后你可以调整然后用元素格式化foundable here
ejk8hzay4#
好吧,看起来有点像黑客。我已经使用子字符串使它工作,这样,只有字符串中带有日期(而不是时间)的部分被传递到DATE函数中。
我还是会接受任何比这个更好的答案!
4uqofj5v5#
注意,如果日期列是一个整数数据类型,如YYYYMMDD,而不是字符串(例如20230522),您需要使用以下内容:
ttp71kqs6#
您可以用途: