我已经使用了称为“ LIKE”的语法,所以当我使用它时,它几乎就像“ NIP,而不是TGLLHR”(生日)一样,当然,所有输出都是因为VARCHAR无法与DATE进行比较
select m.NIP, m.NAMA, DATE_FORMAT(m.TGLLHR, '%Y%m%d') as TGLLHR, DATE_FORMAT(m.TMTCAPEG, '%Y%m%d') as TMTCAPEG, m.KDJENKEL, m.KDSTAPEG, s.NMSTAPEG, t.KDSATKER, t.NMSATKER
from mstpegawai m join
stapeg_tbl s
on m.KDSTAPEG=s.KDSTAPEG join
satker_tbl t
on m.KDSATKER=t.KDSATKER
where m.KDSTAPEG < 10 AND
(NIP not like TGLLHR OR NIP not like TMTCAPEG OR NIP not like KDJENKEL)
ORDER BY m.NAMA
我希望输出是这样的 NIP为19931215013,但是生日为1993-11-15,因此该数据无效,因为NIP的第一个数字与生日不相同
答案 0 :(得分:0)
使用日期掩码将日期转换为字符串,以确保完全按照您的期望进行转换。
假设numpy.ndarray
是TGLLHR
列,则进行如下比较:
DATE
如果仅将NIP not like TO_CHAR(TGLLHR, 'YYYYMMDD') || '%'
字段强制转换为DATE
,那么就让Oracle使用VARCHAR2
设置执行隐式日期转换,这可能是您不希望的。使用明确的日期掩码。