我正在查询的表的日期存储为varchar2。我需要在sysdate-1和sysdate-30之间使用比较存储为varchar2和sysdate的日期(以返回上个月的varchar2日期)。
当指定
to_date(varchar2,'dd-mon-yyyy')
时,我得到错误“literal不匹配格式字符串”。
Oracle文档说这是
to_date()
从varchar2转换时可以接受的格式,这让我感到困惑。
更新:这是一个公司数据库,我没有设计数据库,只能使用我现有的。数据集是巨大的,由SCADA设备自动更新,每天超过10,000个设备。
SELECT device_name, read_date, sysdate
FROM oracle_database
------- Data Returned by query --------
device_name read_date sysdate
Device 1 5/14/2013 22-Sep-14
Device 2 5/14/2013 22-Sep-14
Device 3 5/14/2013 22-Sep-14
Device 4 5/14/2013 22-Sep-14
Device 5 5/14/2013 22-Sep-14
Device 6 5/14/2013 22-Sep-14
Device 7 5/14/2013 22-Sep-14
使用TO_DATE的结果
ORA-01861:文字与格式字符串不匹配
根据您的数据,正确的格式很可能是mm/dd/yyyy
。它将匹配单位数和两位数的月或天。
mm
:月份从01到12(前导0
默认情况下不是强制性的)\
:任何标点符号dd
:日期从01到31(前导0
默认情况下不是强制性的)\
:任何标点符号yyyy
:年有关详细信息,请参阅Oracle关于datetime格式模型的文档。
-- Some test data
WITH testdata AS (
SELECT '5/14/2013' as d FROM DUAL
UNION SELECT '05/14/2013' FROM DUAL
UNION SELECT '5/1/2013' FROM DUAL
UNION SELECT '5/01/2013' FROM DUAL
UNION SELECT '6-6-2013' FROM DUAL)
-- Actual query demonstrating the use of the MM/DD/YYYY format
select d, TO_DATE(d,'MM/DD/YYYY') FROM testdata
D TO_DATE(D,'MM/DD/YYYY')
05/14/2013 05/14/2013
5/01/2013 05/01/2013
5/1/2013 05/01/2013
5/14/2013 05/14/2013
6-6-2013 06/06/2013
fx
标志强制严格比较标点符号和格式fm
标志放松比较,允许最多指定位数嗨,我是贾维斯的新手。 我有一个实体,我正在为它实现一个自定义比较器,以便使用Javers进行比较。 我的实体:- 包装com.devyansh.entity; 进口java.util.清单; 导入组织。贾维斯。果心元模型。注释。实体 下面我注册了新的比较器:- 我的比较器实现:- 问题领域:- 每当我尝试使用以下行进行比较时:- Diff Diff=标枪。比较(new Ent(“aaa”,new
问题内容: 因此,我正在研究比较器问题,但无法弄清楚为什么在第一堂课中给我以下错误: 数组类型中的方法sort(T [],Comparator)不适用于参数(ArrayList,CalorieComparator) 餐厅等级: CalorieComparator类: 问题答案: An 与Java数组不同;由于您使用的是列表,因此对您无济于事。 考虑代替。
问题内容: 如果我正在从文本中扫描 //我想将行中的下一个char与 // 像这样: 我知道那不存在,但是在这种情况下可以使用任何类似的东西吗? 问题答案: 您的代码将类似于… 请注意,在调用之后,实际上已获取了该值,因此,如果您想进一步使用它,最好保留该变量,例如:
我有一个关于compareTo函数如何帮助比较器排序的问题,即o1。比较(o2)与o2。比较(o1) 如果两个字符串相等,则此方法返回0,否则返回正值或负值。如果第一个字符串在词典上大于第二个字符串,则结果为正,否则结果为负。 上面的陈述很简单,但是为什么o1.compare(o2)会给我一个升序,而o2.compare(o1)给了我一个降序? 如果我有整数值“5,10,3”,我得到3,5,10和
问题内容: 我对GUI设计和开发领域还很陌生。我确实有一些经验,但是与Visual Basic有关。 我想在Linux上基于命令行应用程序开发一个相当全面的(尽管不是最先进的)GUI应用程序。我有。已经做了一些谷歌上搜索,我发现主要有三种 好 (也许这就是我的感觉)的方式来实现这一目标: GLADE设计的GTK +库 Qt库,以Qtdesigner为设计师 Java与Netbeans合作 为了解决
谁能解释一下为什么下面的代码不起作用: 但这一个有效: 换句话说,与创建普通类实例相比,接口实现何时是可互换的?当我使用compareTo()方法时会出现错误,该方法是Comparable接口的一部分,由所有包装类(如整数)实现。 所以我猜