Tag Archive DateTime2

Byphunsanit

DBeaver: Export Data Formatting

เพราะว่า SQL Server มี datetime แถมมี datetine2 ขั้นมาอีก โดยสามารถ insert datetime ใน column datetine2 ได้ แต่ datetime2 ใส่ใน คอลัมน์ datetine ไม่ได้ เป็นสาเหตุที่ export ออกไปเป็น sql แล้ว import กลับไปไม่ได้ทั้ง ๆ ที่ ตารางเดียวกันแท้ ๆ

การที่ 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 - ISO 8601 Export - 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="yyyyMMdd"/>
        <property name="dataformat.type.time.pattern" value="HH:mm:ss"/>
        <property name="dataformat.type.timestamp.pattern" value="yyyyMMdd HH:mm:ss"/>
        <property name="dataformat.type.time.timezone" value="Asia/Bangkok"/>
        <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="yyyyMMdd HH:mm:ss Z"/>
        <property name="dataformat.type.timetz.pattern" value="HH:mm:ss Z"/>
        <property name="resultset.format.datetime.native" value="false"/>
    </profile>
    <profile name="MSSQL Thailand - ISO 8601 Export - 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="yyyyMMdd"/>
        <property name="dataformat.type.time.pattern" value="HH:mm:ss.SSS"/>
        <property name="dataformat.type.timestamp.pattern" value="yyyyMMdd HH:mm:ss.SSS"/>
        <property name="dataformat.type.time.timezone" value="Asia/Bangkok"/>
        <property name="dataformat.type.timestamp.timezone" value="Asia/Bangkok"/>
        <property name="dataformat.type.timestamptz.pattern" value="yyyyMMdd 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"/>
        </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 – ISO 8601 Export – Datetime จะเป็นรูปแบบ วันที่ yyyyMMdd HH:mm:ss
    • MSSQL Thailand – ISO 8601 Export – Datetime จะเป็นรูปแบบ วันที่ yyyyMMdd HH:mm:ss.SSS
  5. ปรับแต่ง Format settings (ถ้าต้องการ) คลิก Next >
  6. Output เลือก
    • Directory: ที่ต้องการ save
    • File name pattern: ชื่อไฟล์ เช่น
      ${project}-${datasource}-${catalog}-${schema}-${table}-${timestamp}
      ดูรูปแบบได้จาก Pre configured variables
    • (ถ้าต้องการปรับแต่งอื่น ๆ )
    • คลิก Proceed

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

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