Thep Excel

DateTime.Date – ดึงส่วนวันที่จาก DateTime

ดึงเฉพาะส่วนวันที่ (Date) ออกจากค่า DateTime หรือ DateTimeZone โดยทิ้งเวลาไป

=DateTime.Date(dateTime as any) as nullable date

By ThepExcel AI Agent
3 December 2025

Function Metrics


Popularity
7/10

Difficulty
2/10

Usefulness
7/10

Syntax & Arguments

=DateTime.Date(dateTime as any) as nullable date

Argument Type Required Default Description
dateTime DateTime/DateTimeZone/Date Yes ค่า DateTime, DateTimeZone หรือ Date ที่ต้องการดึงส่วนวันที่ออกมา

Examples

ดึงวันที่จาก DateTime พื้นฐาน
let SampleDateTime = #datetime(2025, 5, 20, 14, 30, 45), ExtractedDate = DateTime.Date(SampleDateTime) in ExtractedDate
ฟังก์ชัน DateTime.Date ดึงส่วนวันที่ (2025-05-20) ออกจาก DateTime ที่มีเวลา (14:30:45) ผลลัพธ์คือ date ที่ไม่มีเวลา
Power Query Formula:

let
    SampleDateTime = #datetime(2025, 5, 20, 14, 30, 45),
    ExtractedDate = DateTime.Date(SampleDateTime)
in
    ExtractedDate

Result:

#date(2025, 5, 20)

ดึงวันที่จาก DateTimeZone
let TimezoneValue = #datetimezone(2025, 12, 31, 23, 59, 59, 8, 0), DateOnly = DateTime.Date(TimezoneValue) in DateOnly
ทำงานได้ดีกับ DateTimeZone เช่นกัน เมื่อมีค่าเขตเวลาปนมา DateTime.Date จะเอาแค่วันที่ส่วน ทิ้งเวลาและเขตเวลาไป
Power Query Formula:

let
    TimezoneValue = #datetimezone(2025, 12, 31, 23, 59, 59, 8, 0),
    DateOnly = DateTime.Date(TimezoneValue)
in
    DateOnly

Result:

#date(2025, 12, 31)

แปลงคอลัมน์ DateTime เป็น Date ในตาราง
let SalesData = Table.FromRows( {{#datetime(2025, 1, 15, 9, 30, 0), 500}, {#datetime(2025, 1, 15, 14, 45, 0), 750}, {#datetime(2025, 1, 16, 10, 20, 0), 600}}, {…
ใช้ Table.TransformColumns คู่กับ DateTime.Date เพื่อแปลงคอลัมน์ DateTime เป็น Date ทั้งตาราง วิธีนี้สะดวกกว่าการแยกหรือแต่งตั้งคอลัมน์ใหม่ หรือจะใช้ each DateTime.Date([OrderDateTime]) ก็ได้เช่นกัน
Power Query Formula:

let
    SalesData = Table.FromRows(
        {{#datetime(2025, 1, 15, 9, 30, 0), 500}, {#datetime(2025, 1, 15, 14, 45, 0), 750}, {#datetime(2025, 1, 16, 10, 20, 0), 600}},
        {"OrderDateTime", "Amount"}
    ),
    ConvertToDate = Table.TransformColumns(SalesData, {"OrderDateTime", each DateTime.Date(_)})
in
    ConvertToDate

Result:

ตารางที่มี OrderDateTime เป็น Date แทน DateTime โดยยังคงค่า Amount ไว้เหมือนเดิม

จัดกลุ่มข้อมูลตามวันที่เมื่อมี DateTime
let TransactionLog = Table.FromRows( {{#datetime(2025, 3, 1, 8, 15, 0), "Sale", 1200}, {#datetime(2025, 3, 1, 15, 45, 0), "Return", 300}, {#datetime(2025, 3, 2,…
สถานการณ์จริงที่พบบ่อย: เรามี transaction log ที่มี timestamp ที่มีวินาที แต่ต้องการสรุปตามวันที่ DateTime.Date ช่วยดึงวันที่ออกมา จากนั้น group by ตามวันนั้นได้ถูกต้อง
Power Query Formula:

let
    TransactionLog = Table.FromRows(
        {{#datetime(2025, 3, 1, 8, 15, 0), "Sale", 1200}, {#datetime(2025, 3, 1, 15, 45, 0), "Return", 300}, {#datetime(2025, 3, 2, 10, 0, 0), "Sale", 1500}},
        {"Timestamp", "Type", "Amount"}
    ),
    AddDateColumn = Table.AddColumn(TransactionLog, "Date", each DateTime.Date([Timestamp])),
    GroupByDate = Table.Group(AddDateColumn, {"Date"}, {{"TotalAmount", each List.Sum([Amount]), "Count", each Table.RowCount(_)}})
in
    GroupByDate

Result:

ตารางแสดง Date, TotalAmount และ Count โดยจัดกลุ่มตามวันที่

FAQs

DateTime.Date กับ Date.From ต่างกันอย่างไร?

DateTime.Date ใช้สำหรับดึงส่วน Date จาก DateTime/DateTimeZone ส่วน Date.From เป็นฟังก์ชันแปลงประเภท (type conversion) ที่พยายามแปลง text หรือค่าอื่นๆ เป็น Date DateTime.Date ใช้ดีเมื่อข้อมูลเป็น DateTime อยู่แล้ว

ถ้าค่าที่ส่งมาเป็น null จะเกิดอะไร?

DateTime.Date จะส่งคืน null นี่คือพฤติกรรมของฟังก์ชัน nullable ใน Power Query ถ้าต้องการจัดการ null ให้ใช้ Table.ReplaceValue หรือ if statement ในคำสั่ง each

ใช้ DateTime.Date ได้กับค่า Date ที่เป็นอยู่แล้วหรือไม่?

ได้ ถ้าส่ง Date เข้าไป DateTime.Date จะคืน Date นั้นกลับมาเหมือนเดิม ไม่มีปัญหา

เวลาของ DateTime จะหายไปหรือเปลี่ยนหรือไม่?

ไม่หายไป มันถูกแสดงออกมาเป็นส่วนหนึ่งของค่า DateTime เท่านั้น DateTime.Date แสดงแค่ส่วน Date ส่วนเวลายังอยู่ในค่า DateTime ดั้งเดิม ถ้าต้องดึงเวลาออกมาให้ใช้ DateTime.Time แทน

Resources & Related

Additional Notes

DateTime.Date เป็นฟังก์ชันที่ช่วยดึงเฉพาะส่วนวันที่ออกจากค่า DateTime หรือ DateTimeZone ให้ติดเหนี่ยว ใช้ดีเมื่อเราได้ค่า DateTime แบบเต็มตัว แต่ต้องการแค่วันที่โดยไม่มีเวลา

ที่เจ๋งคือ DateTime.Date ทำให้เราสามารถแยกข้อมูลออกมาเป็นส่วนๆ ได้ง่าย ไม่ว่าจะเป็นข้อมูล DateTime ที่มีเวลาที่แตกต่างกัน ทั้งหมดจะกลายเป็น Date ที่ง่ายต่อการจัดกลุ่มหรือเปรียบเทียบ

ส่วนตัวผม ใช้ DateTime.Date คู่กับ Table.TransformColumns เมื่อต้องการแปลงคอลัมน์ DateTime ทั้งหมดเป็น Date พอแล้วเวลาของมันหมดไป ข้อมูลจึงเหมาะสำหรับการ group by ตามวันที่มากขึ้น 😎

Leave a Reply

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