แปลง ค.ศ.เป็น พ.ศ. บนฐานข้อมูล MySQL และ MariaDB

ในห้อง 'คอมพิวเตอร์ & อินเตอร์เน็ต' ตั้งกระทู้โดย ledphong, 12 สิงหาคม 2015.

  1. ledphong

    ledphong เป็นที่รู้จักกันดี

    วันที่สมัครสมาชิก:
    28 มีนาคม 2009
    โพสต์:
    1,425
    ค่าพลัง:
    +165
    MySQL และ MariaDB ใช้
    ==================================
    mysql> SELECT DATE_FORMAT(DATE_ADD(NOW(), INTERVAL 543 YEAR),'%Y-%m-%d');
    +------------------------------------------------------------+
    | DATE_FORMAT(DATE_ADD(NOW(), INTERVAL 543 YEAR),'%Y-%m-%d') |
    +------------------------------------------------------------+
    | 2558-07-10 |
    +------------------------------------------------------------+
    1 row in set (0.00 sec)

    คำสั่งบน อาจจะมีปัญหากับวันที่ 29 ก.พ. ควรใช้คำสั่งล่าง Update 2024-01-02

    ที่มา
    Convert date from Christian to Buddhist in MySQL - Stack Overflow
     
    แก้ไขครั้งล่าสุด: 2 มกราคม 2024
  2. ledphong

    ledphong เป็นที่รู้จักกันดี

    วันที่สมัครสมาชิก:
    28 มีนาคม 2009
    โพสต์:
    1,425
    ค่าพลัง:
    +165
    Select concat(SUBSTRING(concat( left(BirthDate, 4)+543 , right( BirthDate, 6)),9,2),'/',SUBSTRING(concat( left(BirthDate, 4)+543 , right( BirthDate, 6)),6,2),'/',SUBSTRING(concat( left(BirthDate, 4)+543 , right( BirthDate, 6)),1,4)) AS BirthDate From tblolder

    ตรวจสอบแล้ว 29/02/2567 ตรวจสอบแล้วไม่มีปัญหากับวันที่ 29 ก.พ. Update 2024-01-02
     
    แก้ไขครั้งล่าสุด: 2 มกราคม 2024
  3. ledphong

    ledphong เป็นที่รู้จักกันดี

    วันที่สมัครสมาชิก:
    28 มีนาคม 2009
    โพสต์:
    1,425
    ค่าพลัง:
    +165
    ตอนป้อนข้อมูลเข้าฐานข้อมูล MySQL or MariaDB ให้เป็น ค.ศ. แล้วมาแสดงข้อมูล select * from ...เอาน่ะครับ (จะแสดงข้อมูลเป็น พ.ศ.)

    ที่สำคัญติดตั้งระบบปฏิทินเป็น United States

    ไม่ยากหรอกครับ เพราะบัตรประชาชนทุกวันนี้ทำมาทั้ง พ.ศ.และ ค.ศ. ครับ (จึงไม่มีผลต่อโปรแกรมเมอร์และผู้คีย์ข้อมูลเข้าระบบฐานข้อมูล)
     
    แก้ไขครั้งล่าสุดโดยผู้ดูแล: 12 สิงหาคม 2015
  4. kasem97

    kasem97 สมาชิกใหม่

    วันที่สมัครสมาชิก:
    25 มีนาคม 2018
    โพสต์:
    1
    ค่าพลัง:
    +0
    วิธี SELECT DATE_FORMAT(DATE_ADD(NOW(), INTERVAL 543 YEAR),'%Y-%m-%d');
    ข้างต้นยังไม่ถูกต้องนะครับ
    หากปีใดเดือน กพ. มี 29 วัน แล้ววันที่จะผิด
     
  5. ledphong

    ledphong เป็นที่รู้จักกันดี

    วันที่สมัครสมาชิก:
    28 มีนาคม 2009
    โพสต์:
    1,425
    ค่าพลัง:
    +165
    ตอบ...Select concat(SUBSTRING(concat( left(BirthDate, 4)+543 , right( BirthDate, 6)),9,2),'/',SUBSTRING(concat( left(BirthDate, 4)+543 , right( BirthDate, 6)),6,2),'/',SUBSTRING(concat( left(BirthDate, 4)+543 , right( BirthDate, 6)),1,4)) AS BirthDate From tblolder

    ตรวจสอบแล้ว 29/02/2567 ตรวจสอบแล้วไม่มีปัญหากับวันที่ 29 ก.พ. Update 2024-01-02
     

แชร์หน้านี้

Loading...