【问题标题】:Date format conversion PL/SQL日期格式转换PL/SQL
【发布时间】:2015-03-09 20:41:53
【问题描述】:

我应该计算年龄加上一位小数。我写了以下内容:

cursor customer is select fname, ename, ROUND((MONTHS_BETWEEN(sysdate, dob)/12),1) age from table;

但是表中的“dob”格式不同(而是 YY-MM-DD),而 sysdate(我猜)使用了其他格式,我收到错误消息“”literal does not match format string "" 并且想提出关于如何转换字符串的想法,我应该转换 dob 还是 sysdate?

【问题讨论】:

  • PL/SQL 不是 MySQL 中使用的语言。了解您使用的 DBMS 肯定会帮助您找到正确的文档。
  • PL/SQL 不是 mysql(DBMS) 语言。 Oracle(RDBMS) 使用 PL/SQL

标签: oracle date plsql type-conversion sysdate


【解决方案1】:

看起来 dob 列是字符串(varchar2 或 char)。您应该将其转换为日期

to_date(dob, 'YY-MM-DD')

完整的查询如下所示

cursor customer is select fname, ename, ROUND((MONTHS_BETWEEN(sysdate, to_date(dob, 'YY-MM-DD'))/12),1) age from table;

【讨论】:

  • 我认为你的意思是“to_date()”而不是“to_char()”
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-23
  • 2021-04-30
  • 2015-04-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多