如题所述
你好,Oracle中日期类型是date类型,sql语句中是区分类型的,也就是说虽然形势上'2012-12-21'是一个日期,但是它在Oracle中却是实实在在的字符串类型,所以不能插入到date类型的字段里,解决方法就是将日期字符串转换成date类型就可以了,这里可以使用to_date函数,如:
insert into tablename (date_column) values(to_date('2012-12-21','yyyy-mm-dd') )。
to_date里需要两个参数,第一个是日期字符串,可以在程序中拼好(Java或者其他高级程序语言想实现这一点都是很容易的);第二个参数是日期的格式,'yyyy-mm-dd'的意思是想要4位的年份,两位的月份(比方说如果为2,则保存为:02)和两位的日期(这个意义和月份相同,假如为4号,则保存为04)。如果想要其他的格式或者想插入具体的时分秒时间都是可以的,比如:
to_date('2012-12-21 12:12:12','yyyy-mm-dd hh24:mi:ss')后边的24代表使用24时制时间。够明白吧!
insert into tablename (date_column) values(to_date('2012-12-21','yyyy-mm-dd') )。
to_date里需要两个参数,第一个是日期字符串,可以在程序中拼好(Java或者其他高级程序语言想实现这一点都是很容易的);第二个参数是日期的格式,'yyyy-mm-dd'的意思是想要4位的年份,两位的月份(比方说如果为2,则保存为:02)和两位的日期(这个意义和月份相同,假如为4号,则保存为04)。如果想要其他的格式或者想插入具体的时分秒时间都是可以的,比如:
to_date('2012-12-21 12:12:12','yyyy-mm-dd hh24:mi:ss')后边的24代表使用24时制时间。够明白吧!
温馨提示:答案为网友推荐,仅供参考
第1个回答 2012-03-12
这个简单,遍历数据库,
Resultset select =Select * from 表
While( Result.next(){ String[] year = select.getString(" 年")}
While( Result.next(){ String [] mon= select.getString(" 月")}
While( Result.next(){ String [] day = select.getString(" 日")}
for(int i=0;i<select.getRow;i++){
String[i] 日期 = year[i]+mon[i]+day[i]
}
for(int i=0;i<select.getRow;i++){
update 表 SET 日期 =String[i]日期 WHERE year = String[i] year and mon = String[i] mon
}
希望对你有帮助
Resultset select =Select * from 表
While( Result.next(){ String[] year = select.getString(" 年")}
While( Result.next(){ String [] mon= select.getString(" 月")}
While( Result.next(){ String [] day = select.getString(" 日")}
for(int i=0;i<select.getRow;i++){
String[i] 日期 = year[i]+mon[i]+day[i]
}
for(int i=0;i<select.getRow;i++){
update 表 SET 日期 =String[i]日期 WHERE year = String[i] year and mon = String[i] mon
}
希望对你有帮助
第2个回答 2012-03-12
insert tableA values(
...
,YYYYMMDDField = to_date(to_char(YYYYField) || to_char(MMField) || to_char(DDField),'YYYYMMDD')
...
)
...
,YYYYMMDDField = to_date(to_char(YYYYField) || to_char(MMField) || to_char(DDField),'YYYYMMDD')
...
)
第3个回答 2012-03-12
SELECT to_date('2012年03月12日','yyyy"年"mm"月"dd"日"') FROM dual