栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

在where子句中将十进制转换为日期

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

在where子句中将十进制转换为日期

我明白了:您想要某种重新排列数字的位数以使其成为日期的方式。看起来像是编码

[m]mddyyyy
。(为什么
date
数据库中没有该数据类型?)

该数字需要转换为字符串,然后将子字符串排列并转换为日期。考虑到这里的复杂性,应该编写转换函数来代替将字段更改为适当的数据类型。应该执行以下操作(未测试,无法访问db2):

create function decimaldate(decdate DECIMAL) returns DATEreturnwith tmp (dstr) as(    select substr(digits (decdate),8)    from sysibm.sysdummy1)select  date (substr(dstr,4,4) || '-' ||        substr(dstr,1,2) || '-' ||        substr(dstr,3,2)       )from tmp

这会将数字转换为字符串,将字符串重新格式化为

yyyy-mm-dd
并转换为日期。(我以此为基础。)

因此,解决原始问题的方法就是编写:

SELECt * FROM table1WHERe decimaldate(DECIMALCOLUMN) = @date

通过这种在数据库中编码日期的简便方法,拥有始终可用的功能将被证明是无价的。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/382206.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号