我刚刚更新了我的jdbc驱动程序,我的一些插入和更新不再有效。我确实发现,如果我把它放在我的etc / my.cnf中,它会帮助一些。
sql_mode=ALLOW_INVALID_DATES
但是我仍然遇到允许null
的日期和时间字段的问题例如,当我尝试插入
时insert into calendar2 (`id`, `userID`, `title`, `event_desc`, `catid`,
`startDate`, `startTime`, `endDate`, `endTime`,
`allDayEvent`, `url`, `image`, `icon`, `recurrence`,
`occuranceID`, `endRecurDate`)
values ( '0' ,'965' ,'asd' ,'asd' ,'-1' ,'2014-06-11'
,'','','','1' ,'' ,'' ,'' ,'' ,'0' ,'' )
这曾经工作过。现在我得到了错误
Data truncation: Incorrect time value: '' for column 'startTime' at row 1
这是遗留代码,并生成了sql。我无法将其更改为参数化
字段在DB中定义为
`startDate` DATE NULL DEFAULT NULL,
`startTime` TIME NULL DEFAULT NULL,
`endDate` DATE NULL DEFAULT NULL,
`endTime` TIME NULL DEFAULT NULL,
在我的jdbc连接字符串中我有
jdbc:mysql://HOST:3306/DB?zeroDateTimeBehavior=convertToNull
感谢您的帮助或想法
答案 0 :(得分:0)
我需要设置这些变量
emptyStringsConvertToZero=true
jdbcCompliantTruncation=false
noDatetimeStringSync=true
nullCatalogMeansCurrent=true
nullNamePatternMatchesAll=true
transformedBitIsBoolean=false
dontTrackOpenResources=true
zeroDateTimeBehavior=convertToNull
useServerPrepStmts=false
autoClosePStmtStreams=true
processEscapeCodesForPrepStmts=false
useFastDateParsing=false
populateInsertRowWithDefaultValues=false
useDirectRowUnpack=false