เพราะว่า SQL Server มี datetime แถมมี datetine2 ขั้นมาอีก โดยสามารถ insert datetime ใน column datetine2 ได้ แต่ datetime2 ใส่ใน คอลัมน์ datetine ไม่ได้
การที่ export data โดย DBeaver ทำให้ต้องมีการ export 2 แบบซึ่งทำได้โดย Formatting:
- สามารถ import formatting ได้โดยการวางไฟล์ dataformat-profiles.xml
- Windows อยู่ใน %APPDATA\DBeaverData\workspace6\.metadata\.plugins\org.jkiss.dbeaver.core
- macOS อยู่ใน ~/Library/DBeaverData/workspace6/.metadata/.plugins/org.jkiss.dbeaver.core
- Linux อยู่ใน $XDG_DATA_HOME/DBeaverData/workspace6/.metadata/.plugins/org.jkiss.dbeaver.core
สร้างไฟล์ dataformat-profiles.xml โดยมีเนื้อหา
<?xml version="1.0" encoding="UTF-8"?>
<profiles>
<profile name="MSSQL Thailand Datetime">
<property name="dataformat.profile.country" value="TH" />
<property name="dataformat.profile.language" value="th" />
<property name="dataformat.profile.variant" value="TH" />
<property name="dataformat.type.date.pattern" value="yyyy-MM-dd"/>
<property name="dataformat.type.number.groupingSize" value="3"/>
<property name="dataformat.type.number.maxFractionDigits" value="10"/>
<property name="dataformat.type.number.maxIntegerDigits" value="2147483647"/>
<property name="dataformat.type.number.minFractionDigits" value="0"/>
<property name="dataformat.type.number.minIntegerDigits" value="0" />
<property name="dataformat.type.number.nativeSpecialValues" value="false"/>
<property name="dataformat.type.number.useGrouping" value="true"/>
<property name="dataformat.type.number.useTypeScale" value="false"/>
<property name="dataformat.type.time.pattern" value="HH:mm:ss"/>
<property name="dataformat.type.time.timezone" value="Asia/Bangkok" />
<property name="dataformat.type.timestamp.pattern" value="yyyy-MM-dd HH:mm:ss" />
<property name="dataformat.type.timestamp.timezone" value="Asia/Bangkok" />
<property name="dataformat.type.timestamp.truncate-milliseconds" value="true" />
<property name="dataformat.type.timestamptz.pattern" value="yyyy-MM-dd HH:mm:ss Z" />
<property name="dataformat.type.timetz.pattern" value="HH:mm:ss Z"/>
<property name="resultset.format.datetime.native" value="false" />
<property name="resultset.format.numeric.native" value="false" />
<property name="resultset.format.numeric.scientific" value="false" />
</profile>
<profile name="MSSQL Thailand Datetime2">
<property name="dataformat.profile.country" value="TH" />
<property name="dataformat.profile.language" value="th" />
<property name="dataformat.profile.variant" value="TH" />
<property name="dataformat.type.date.pattern" value="yyyy-MM-dd"/>
<property name="dataformat.type.number.groupingSize" value="3"/>
<property name="dataformat.type.number.maxFractionDigits" value="10"/>
<property name="dataformat.type.number.maxIntegerDigits" value="2147483647"/>
<property name="dataformat.type.number.minFractionDigits" value="0"/>
<property name="dataformat.type.number.minIntegerDigits" value="0" />
<property name="dataformat.type.number.nativeSpecialValues" value="false"/>
<property name="dataformat.type.number.useGrouping" value="true"/>
<property name="dataformat.type.number.useTypeScale" value="false"/>
<property name="dataformat.type.time.pattern" value="HH:mm:ss"/>
<property name="dataformat.type.time.timezone" value="Asia/Bangkok" />
<property name="dataformat.type.timestamp.pattern" value="yyyy-MM-dd HH:mm:ss.SSS"/>
<property name="dataformat.type.timestamp.timezone" value="Asia/Bangkok" />
<property name="dataformat.type.timestamptz.pattern" value="yyyy-MM-dd HH:mm:ss.SSS Z"/>
<property name="dataformat.type.timetz.pattern" value="HH:mm:ss.SSS Z"/>
<property name="resultset.format.datetime.native" value="false" />
<property name="resultset.format.numeric.native" value="false" />
<property name="resultset.format.numeric.scientific" value="false" />
</profile>
</profiles>
การใช้งาน
- ใน Database Navigator คลิกขวา ตารางที่เลือก Export Data
- เลือก Export Target ที่ต้องการ เช่น SQL Export to SQL INSERT statements คลิก Next >
- ปรับแต่ง Extraction settings (ถ้าต้องการ) คลิก Next >
- ใน Format settings ให้เลือก Formatting: เช่น
- MSSQL Thailand Datetime จะเป็นรูปแบบ วันที่ yyyy-MM-dd HH:mm:ss
- MSSQL Thailand Datetime2 จะเป็นรูปแบบ วันที่ yyyy-MM-dd HH:mm:ss.SSS
- ปรับแต่ง Format settings (ถ้าต้องการ) คลิก Next >
- Output เลือก
- Directory: ที่ต้องการ save
- File name pattern: ชื่อไฟล์
- (ถ้าต้องการปรับแต่งอื่น ๆ )
- คลิก Proceed
ดูว่ารูปแบบวันที่ datetime / datetine2 ตรงตามความต้องการมั๋ย
อ่านเพิ่มเติม
About the author