【发布时间】:2012-05-10 14:51:26
【问题描述】:
我要比较 2 个表中的日期,但问题是一个表的日期为 DD-Mon-YY 格式,另一个表的日期为 YYYYMM 格式。
我需要将它们都设为 YYYYMM 以进行比较。
我需要创建这样的东西:
SELECT * FROM offers
WHERE offer_date = (SELECT to_date(create_date, 'YYYYMM') FROM customers where id = '12345678')
AND offer_rate > 0
create_date 类似于 12-Mar-2006,offer_date 类似于 200605
有什么想法我需要调整这个查询吗??
【问题讨论】:
-
您为什么遇到问题? offer_date 是
VARCHAR2(字符串)吗? -
日期没有这样的格式。如果你想要这种格式,你需要一个定义的字符串。那么,您是在寻找字符串(具有该格式)还是 DATETIME(没有格式)。因此,如果您的字段“具有不同的格式”,它们的实际数据类型是什么? DATETIMEs、VHARCHAR()s 等?
-
@phil - offer_date 是一个数字字段
-
@Dems - 除了上面的注释,create_date 是一个 DATE 字段
-
@Tom:如果您可以将这些日期列的数据类型转换为
DATE,那就更好了。为什么使用NUMBER作为日期列?
标签: sql oracle date-format to-date