जब मैं दिनांक कॉलम में शून्य मान सेट करता हूं तो मुझे "1 9 00-01-01 00: 00: 00.000" मेरी तालिका में मूल्य मिलता है और मैं उस कॉलम में पूर्ण होने की उम्मीद कर रहा हूं। अगर मैं इसlog4j2 jdbcappender में दिनांक निर्धारित करते समय शून्य को कैसे संभालें?
preparedStatement.setBindParam(Types.TIMESTAMP, 12, startdate);
log4j2.xml स्तंभों की
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="debug">
<CustomLevels>
<CustomLevel name="TESTLOG" intLevel="552" />
</CustomLevels>
<Appenders>
<JDBC name="myAppender" tableName="MYTABLE">
<DataSource jndiName="java:MyDataSource" />
<Column name="ID" pattern="%X{ID}" isUnicode="false"/>
<Column name="startdate" pattern="%X{startdate}" isUnicode="false"/>
<Column name="enddate" pattern="%X{enddate}" isUnicode="false"/>
</JDBC>
</Appenders>
<Loggers>
<Root level="trace" includeLocation="false">
<AppenderRef ref="myAppender" level="TESTLOG" />
</Root>
</Loggers>
</Configuration>
डाटाटाइप STARTDATE की तरह डाल इस रूप में JDBC में ठीक से नियंत्रित किया जाता है और ENDDATE datetime
ThreadContext.put("startdate", startdate != null ? startdate.toString() : null);
ThreadContext.put("enddate", a_reportEndDate != null ? enddate.toString() : null);
final Logger LOGGER = LogManager.getLogger();
LOGGER.log(Level.forName("TESTLOG", 552), "");
ही है शून्य मूल्य के साथ स्ट्रिंग के लिए।
शायद आपकी तालिका टाइमस्टैम्प कॉलम के लिए डिफ़ॉल्ट मानों के साथ बनाई गई थी? – Ivan