sql - Oracle SQL 将日期格式从 DD-Mon-YY 转换为 YYYYMM

标签 sql oracle date-format to-date

我要比较 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 类似于 2006 年 3 月 12 日,而 offer_date 类似于 200605

我需要调整此查询的任何想法?

最佳答案

由于 offer_date 是一个数字,并且准确度低于您的实际日期,因此这可能有效...
- 将您的真实日期转换为 YYYYMM 格式的字符串
- 将该值转换为 INT
- 将结果与您的 offer_date 进行比较

SELECT
  *
FROM
  offers
WHERE
    offer_date = (SELECT CAST(to_char(create_date, 'YYYYMM') AS INT) FROM customers where id = '12345678')
AND offer_rate > 0 

此外,通过对 create_date 进行所有操作,您只需对一个值进行处理。

此外,如果您操作了 offer_date,您将无法在该字段上使用任何索引,因此强制扫描而不是搜索。

关于sql - Oracle SQL 将日期格式从 DD-Mon-YY 转换为 YYYYMM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10536626/

相关文章:

Oracle 禁用物化 View 刷新

java - 在多时区服务器上使用 JDBC 时,我应该选择哪种 Oracle 日期数据类型?

mysql - GRANT USAGE to @user'%' 是否可以为特定列表工作?

SQL - 按自定义 24 小时周期对结果进行分组

oracle - 在命令行参数之间添加逗号

mysql - 如何将列标题标记为格式化日期?

java - 将java中的日期格式从ddMMyyyy更改为dd-MM-yyyy

Java 7 DateFormat 将 UTC 日期解析为本地日期

mysql - 从具有间接关系(从另一个表)的两个表中检索数据

python - 按列分组以在 Postgresql 中获取数组结果