ORA-01861: 文字與格式字符串不匹配
spring + mybatis中日期格式提交出現(xiàn)錯誤伦吠。執(zhí)行update時,日期格式死活不通過
錯誤信息:ORA-01861: 文字與格式字符串不匹配
解決方法:
update HBB_CC_CONTRACT_TC?
SET STARTDATE =to_date(to_char(#{startdate}, 'yyyy-mm-dd hh24:mi:ss'), 'yyyy-mm-dd hh24:mi:ss')?
? ? ? where ID = #{id}
在mybatis 的xml中 用Oracle中執(zhí)行update 格式化日期惹骂,需要先將java日期對象轉(zhuǎn)換為 字符串苏携,然后再把字符串轉(zhuǎn)換為oracle日期對象,方可对粪。
spring右冻、springmvc、springboot等日期格式轉(zhuǎn)換錯誤
spring著拭、springmvc纱扭、springboot不能綁定個性化的日期格式參數(shù)到 實體bean。會報參數(shù)綁定錯誤茫死。如 "yyyy-MM-dd hh:mm:ss"的常用日期格式提交給 spring 的controller進行自動轉(zhuǎn)換時,則會轉(zhuǎn)換異常跪但。須要手動轉(zhuǎn)換格式,代碼如下(在spring的Controller類中添加如下代碼即可):
@InitBinder
? ? public void initBinder(WebDataBinder binder) {
? ? ? ? SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
? ? ? ? binder.registerCustomEditor(Date.class, new CustomDateEditor(dateFormat, true)); // true:允許輸入空值履羞,false:不能為空值
? ? }
另外EasyUI中日期對象的格式化:
html:
<input id="enddate" name="enddate" ?type="text" ?value="${tc.enddate}"
data-options="formatter:myformatter,parser:myparser"
class="easyui-datetimebox" required="required" />
js(以下js最好放在html的最上邊,保證data-option執(zhí)行時已經(jīng)存在對應的函數(shù)):
function myformatter(date){
var y = date.getFullYear(); var m = date.getMonth()+1;
var d = date.getDate();
var h = date.getHours() ;h= h<10?'0'+h:h;
var mm = date.getMinutes();mm= mm<10?'0'+mm:mm;
var ss = date.getSeconds();ss= ss<10?'0'+ss:ss;
return y+'-'+(m<10?('0'+m):m)+'-'+(d<10?('0'+d):d) +' '+h+':'+mm+':'+ss;
}
function myparser(s){
if (!s) return new Date(); ?return new Date(s);
}