---
title: DateTime.FromText
url: https://www.thepexcel.com/functions/power-query/datetime-functions/datetime-fromtext/
type: function-explainer
program: Power Query
syntax: "= DateTime.FromText(text as nullable text, optional options as any) as nullable datetime"
date: 2025-12-12
updated: 2025-12-24
scores:
  popularity: 6
  difficulty: 3
  usefulness: 6
---

# DateTime.FromText

> DateTime.FromText ใช้แปลงข้อความเป็นค่า datetime พร้อมรองรับรูปแบบและภาษาที่หลากหลาย

## คำอธิบาย

DateTime.FromText ใช้แปลงข้อความเป็นค่า datetime พร้อมรองรับรูปแบบและภาษาที่หลากหลาย

## Syntax

```excel
= DateTime.FromText(text as nullable text, optional options as any) as nullable datetime
```

## Arguments

| Name | Required | Type | Default | Description |
| --- | --- | --- | --- | --- |
| text | Yes | text |  | ข้อความที่ต้องการแปลงให้เป็น datetime (สามารถเป็น null ได้) |
| options | No | record | null | Record ที่สามารถมี Format (รูปแบบเฉพาะ) และ Culture (ภาษา/วัฒนธรรม) ได้ |

## ตัวอย่าง

### 1. แปลงรูปแบบ ISO standard

```excel
= DateTime.FromText("2010-12-31T01:30:25")
```

**ผลลัพธ์:** `#datetime(2010, 12, 31, 1, 30, 25)`

ข้อความในรูปแบบ ISO 8601 (yyyy-MM-dd'T'HH:mm:ss) จะแปลงโดยอัตโนมัติโดยไม่ต้องระบุ Format

### 2. ใช้ Format และ Culture เฉพาะ

```excel
= DateTime.FromText("30 Dez 2010 02:04:50.369730",
    [Format="dd MMM yyyy HH:mm:ss.ffffff", Culture="de-DE"])
```

**ผลลัพธ์:** `#datetime(2010, 12, 30, 2, 4, 50.36973)`

ข้อความเป็นภาษาเยอรมัน (Dez = December) แปลงได้โดยระบุ Culture="de-DE" และ Format ที่ตรงกับรูปแบบข้อมูล

### 3. รูปแบบกะทัดรัดที่มี T และ Z

```excel
= DateTime.FromText("2000-02-08T03:45:12Z",
    [Format="yyyy-MM-dd'T'HH:mm:ss'Z'", Culture="en-US"])
```

**ผลลัพธ์:** `#datetime(2000, 2, 8, 3, 45, 12)`

รูปแบบ compact ที่มีอักขระพิเศษ (T และ Z) สามารถแปลงได้โดยใช้ single quotes เพื่อแสดง literal characters

### 4. รูปแบบเปอร์เซ็นต์ (yyyyMMddTHHmmss)

```excel
= DateTime.FromText("20101231T013000",
    [Format="yyyyMMdd'T'HHmmss", Culture="en-US"])
```

**ผลลัพธ์:** `#datetime(2010, 12, 31, 1, 30, 0)`

รูปแบบที่ไม่มีตัวคั่น สามารถแปลงได้ถ้าระบุ Format ที่ตรงกันในรูป yyyyMMddTHHmmss

## หมายเหตุเพิ่มเติม

- ใช้ DateTime.FromText ร่วมกับ Table.TransformColumns เพื่อแปลงทั้งคอลัมน์พร้อมกัน: Table.TransformColumns(Source, {"DateColumn", each DateTime.FromText(_, [Format="yyyy-MM-dd HH:mm:ss"])})

- ใช้ try-otherwise เพื่อจัดการกับค่าที่แปลงไม่ได้: try DateTime.FromText(text, [Format="..."]) otherwise null

- เมื่อข้อมูลมาจากแหล่งต่างๆ ให้ตรวจสอบรูปแบบของวันเวลาในแต่ละแหล่งก่อน แล้วเลือก Format ที่เหมาะสมสำหรับแต่ละชุด

- ใช้ Culture ของภาษา/ประเทศที่ข้อมูลมาจากนั้นๆ เพื่อให้การแยกวิเคราะห์ถูกต้อง (เช่น de-DE สำหรับเยอรมัน, fr-FR สำหรับฝรั่งเศส)

- ฟังก์ชัน DateTime.ToText() เป็นฟังก์ชันตรงข้าม ใช้ในการแปลง datetime กลับเป็นข้อความ

## คำถามที่พบบ่อย

**Q: ถ้าข้อความไม่ตรงกับ Format ที่ระบุจะเป็นอย่างไร**

ฟังก์ชันจะส่งกลับ null (ไม่มีค่า) แต่ไม่ยุติการทำงาน ถ้าต้องการจับข้อผิดพลาด สามารถใช้ try-catch โดยห่อด้วย try DateTime.FromText(...) otherwise null

**Q: หากไม่ระบุ Format จะเกิดอะไร**

Power Query จะพยายาม parse ตามรูปแบบมาตรฐานต่างๆ โดยอัตโนมัติ (best-effort parsing) เช่น ISO 8601, วัฒนธรรมปัจจุบัน เป็นต้น

**Q: ใช้ได้กับ Culture ภาษาไทยหรือไม่**

ได้ แต่ต้องใช้รูปแบบและระบุ Culture="th-TH" ให้ถูกต้อง เช่น "31/12/2010" สำหรับรูปแบบ dd/MM/yyyy

**Q: ความแตกต่างระหว่าง DateTime.FromText กับ Date.FromText คืออะไร**

DateTime.FromText แปลงเป็น datetime (วันที่ + เวลา) ส่วน Date.FromText แปลงเป็น date (วันที่เท่านั้น) ไม่มีส่วนของเวลา

## แหล่งข้อมูลเพิ่มเติม

- [DateTime.FromText - Microsoft Learn](https://learn.microsoft.com/en-us/powerquery-m/datetime-fromtext) _(official)_
- [DateTime Functions - Microsoft Learn](https://learn.microsoft.com/en-us/powerquery-m/datetime-functions) _(official)_

---

_Source: [https://www.thepexcel.com/functions/power-query/datetime-functions/datetime-fromtext/](https://www.thepexcel.com/functions/power-query/datetime-functions/datetime-fromtext/)_
