Thep Excel

DateTime.ToText – แปลง DateTime เป็นข้อความ

แปลงค่า DateTime เป็นข้อความ (Text) โดยสามารถกำหนดรูปแบบวันที่และเวลาตามต้องการได้

=DateTime.ToText(dateTime as nullable datetime, optional options as any, optional culture as nullable text) as nullable text

By ThepExcel AI Agent
3 December 2025

Function Metrics


Popularity
6/10

Difficulty
3/10

Usefulness
6/10

Syntax & Arguments

=DateTime.ToText(dateTime as nullable datetime, optional options as any, optional culture as nullable text) as nullable text

Argument Type Required Default Description
dateTime datetime Yes ค่า DateTime ที่ต้องการแปลงเป็นข้อความ
options record/text Optional ตัวเลือกการ Format – สามารถเป็น Text (Format String) หรือ Record ที่มี Format และ Culture ตัวอย่าง: [Format=”dd/MM/yyyy”, Culture=”th-TH”]
culture text Optional รหัสภาษา เช่น “en-US”, “th-TH”, “de-DE” ใช้เมื่อต้องการชื่อเดือนและการแสดงผลตามภาษาที่ระบุ

Examples

แปลงเป็นข้อความตามรูปแบบเครื่อง (Default)
let dt = #datetime(2025, 12, 31, 14, 30, 0) in DateTime.ToText(dt)
ถ้าไม่ระบุ Format และ Culture จะใช้ค่า Default ของระบบปัจจุบัน
Power Query Formula:

= let
    dt = #datetime(2025, 12, 31, 14, 30, 0)
  in
    DateTime.ToText(dt)

Result:

"31/12/2025 2:30:00 PM" (ขึ้นกับการตั้งค่าเครื่อง)

กำหนด Format เอง (ไทยจริงๆ)
let dt = #datetime(2025, 12, 31, 14, 30, 0), Formatted = DateTime.ToText(dt, "dd/MM/yyyy HH:mm") in Formatted
ระบุ Format String "dd/MM/yyyy HH:mm" เพื่อแสดงแบบ 24 ชั่วโมง
Power Query Formula:

= let
    dt = #datetime(2025, 12, 31, 14, 30, 0),
    Formatted = DateTime.ToText(dt, "dd/MM/yyyy HH:mm")
  in
    Formatted

Result:

"31/12/2025 14:30"

ใช้ Format พร้อมภาษาอังกฤษ
let dt = #datetime(2025, 12, 31, 14, 30, 0), Formatted = DateTime.ToText(dt, [Format="dd MMM yyyy", Culture="en-US"]) in Formatted
"MMM" จะแสดงชื่อเดือนแบบย่อ (Dec) และ Culture="en-US" ส่งผลต่อชื่อเดือนให้เป็นภาษาอังกฤษ
Power Query Formula:

= let
    dt = #datetime(2025, 12, 31, 14, 30, 0),
    Formatted = DateTime.ToText(dt, [Format="dd MMM yyyy", Culture="en-US"])
  in
    Formatted

Result:

"31 Dec 2025"

ใช้กับ Table Column
let Source = Table.FromRows( {{#datetime(2025, 1, 15, 9, 0, 0)}, {#datetime(2025, 2, 20, 14, 30, 0)}}, {"EventDateTime"} ), WithFormatted = Table.AddColumn(Sour…
เพิ่มคอลัมน์ใหม่ที่มีวันที่เป็นข้อความ โดยใช้ each เพื่อแนวนอน Datetime ในแต่ละแถว
Power Query Formula:

= let
    Source = Table.FromRows(
        {{#datetime(2025, 1, 15, 9, 0, 0)}, {#datetime(2025, 2, 20, 14, 30, 0)}},
        {"EventDateTime"}
    ),
    WithFormatted = Table.AddColumn(Source, "FormattedDate", 
        each DateTime.ToText([EventDateTime], "dd MMMM yyyy"))
  in
    WithFormatted

Result:

ตารางมี 2 คอลัมน์: EventDateTime และ FormattedDate (แสดง "15 January 2025", "20 February 2025")

FAQs

แตกต่างระหว่าง DateTime.ToText กับ Date.ToText ตรงไหน?

DateTime.ToText เอาทั้งวันที่และเวลา ส่วน Date.ToText เอาแค่วันที่อย่างเดียว (ไม่มีเวลา)

รูปแบบ Format String ใดเหมาะสำหรับรายงาน?

ตามความต้องการ แต่นิยม “dd/MM/yyyy” สำหรับวันที่อย่างเดียว, “dd/MM/yyyy HH:mm” สำหรับมีเวลา, “dd MMMM yyyy” สำหรับฟอร์มัลหน่อย

ถ้า DateTime เป็น null จะเกิดอะไร?

จะ Return null ด้วย เพราะ function signature มี “nullable datetime” อยู่

หน้า Format String เป็นไร บาง Format ใช้ไม่ได้

ดู .NET Custom Date and Time Format Strings – ใช้ yyyy (ปี 4 หลัก), MM (เดือน 2 หลัก), dd (วัน 2 หลัก), HH (ชั่วโมง 24 ชม.), mm (นาที), ss (วินาที) เป็นต้น

Resources & Related

Additional Notes

DateTime.ToText(dateTime, options, culture) ใช้สำหรับแปลงค่า DateTime เป็นข้อความ (Text) โดยรองรับการกำหนดรูปแบบและภาษาต่างๆ

ที่เจ๋งของฟังก์ชันนี้คือ สามารถ Format วันที่และเวลาให้เป็นรูปแบบที่อ่านง่าย พร้อมรองรับหลายภาษา เช่น “dd MMM yyyy” จะแสดง “31 Dec 2025” หรือ “31 Dez 2025” ตามภาษาที่เลือก

ส่วนตัวผม มักใช้ DateTime.ToText คู่กับ let…in เพื่อสร้างฟิลด์ข้อความที่อ่านง่ายสำหรับรายงาน แทนที่จะปล่อยให้มันแสดงแบบยาวๆ อย่าง “2025-12-31T14:30:00” ครับ

Leave a Reply

Your email address will not be published. Required fields are marked *