Tag Archive DateTime

Byphunsanit

DBeaver: Export Data Formatting

เพราะว่า SQL Server มี datetime แถมมี datetine2 ขั้นมาอีก โดยสามารถ insert datetime ใน column datetine2 ได้ แต่ datetime2 ใส่ใน คอลัมน์ datetine ไม่ได้

การที่ export data โดย DBeaver ทำให้ต้องมีการ export 2 แบบซึ่งทำได้โดย Formatting:

  1. สามารถ 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>

การใช้งาน

  1. ใน Database Navigator คลิกขวา ตารางที่เลือก Export Data
  2. เลือก Export Target ที่ต้องการ เช่น SQL Export to SQL INSERT statements คลิก Next >
  3. ปรับแต่ง Extraction settings (ถ้าต้องการ) คลิก Next >
  4. ใน Format settings ให้เลือก Formatting: เช่น
    • MSSQL Thailand Datetime จะเป็นรูปแบบ วันที่ yyyy-MM-dd HH:mm:ss
    • MSSQL Thailand Datetime2 จะเป็นรูปแบบ วันที่ yyyy-MM-dd HH:mm:ss.SSS
  5. ปรับแต่ง Format settings (ถ้าต้องการ) คลิก Next >
  6. Output เลือก
    • Directory: ที่ต้องการ save
    • File name pattern: ชื่อไฟล์
    • (ถ้าต้องการปรับแต่งอื่น ๆ )
    • คลิก Proceed

ดูว่ารูปแบบวันที่ datetime / datetine2 ตรงตามความต้องการมั๋ย

อ่านเพิ่มเติม