select to_date(to_number(to_char(created_on_date,'MMDDYYYY')),'MMDDYYYY') from is_mdm_customer
上面的查询正在给出
Error starting at line 1 in command:
select to_date(to_number(to_char(created_on_date,'MMDDYYYY')),'MMDDYYYY') from is_mdm_customer
Error report:
SQL Error: ORA-01843: not a valid month
01843. 00000 - "not a valid month"
*Cause:
*Action:
答案 0 :(得分:2)
您应该将日期类型存储为DATE列,而不是varchars。如果您需要月,日和年,您也可以为这些添加列。
比较日期。如果您不想比较小时,分钟,秒,我会以这种方式存储它们:将时间设置为INSERT或UPDATE它的当天午夜。然后你可以直接比较DATE。
格式只应影响视图渲染,仅此而已。
答案 1 :(得分:1)
如果您只想修剪时间部分,请使用TRUNCATE()。
select TRUNC(created_on_date) from is_mdm_customer
您还可以将参数传递给TRUNCATE函数以不同方式截断日期。但是,如果您只想要年份,EXTRACT()往往会更好。
答案 2 :(得分:0)
如果将 created_on_date 列定义为日期列,则可以使用此项。
从is_mdm_customer中选择to_char(created_on_date,'MMDDYYYY');