to_date sắp xếp dd / MM / yyy

Dec 18 2020

Tôi có một cột dưới dạng chuỗi, 10/12/2020 13:14:39tôi muốn chuyển đổi nó sang định dạng Ngày (tôi sẽ làm điều đó bằng cách sử dụng công cụ cấu trúc lại sau). Đầu tiên tôi cần phải sắp xếp lại điều này để thời gian được loại bỏ và dd/MM/yyyysắp xếp như yyyy/MM/dd.

Tôi đang sử dụng máy tính trường, làm cách nào để thực hiện việc này?

Tôi đã thử to_date("CreatedAt", 'dd/MM/yyyy')format_date("CreatedAt", 'dd/MM/yyyy')không cho kết quả chính xác.

Trả lời

3 DaveX Dec 18 2020 at 02:19

Vì bạn đang bắt đầu với chuỗi ngày giờ, bạn có thể phân tích cú pháp đầy đủ và định dạng kết quả dưới dạng chuỗi ngày tháng thuần túy trong một bước:

format_date(to_datetime('10/12/2020 13:14:39',
   'dd/MM/yyyy HH:mm:ss'),
   'yyyy/MM/dd')

hoặc là

format_date(to_datetime("CreatedAt",'dd/MM/yyyy HH:mm:ss'),'yyyy/MM/dd')

(Lưu ý "Xem trước: '2020/12/10'" trong Edit/Select/Select by Expressioncửa sổ bên dưới:

Tài liệu cho QGIS to_datavà thuộc tính to_datetimecủa biểu thức formatvà phân tích cú pháp của nó nằm trong QT nhưhttps://doc.qt.io/qt-5/qdate.html#fromString-1 và https://doc.qt.io/qt-5/qtime.html#toString. Bạn có thể tìm thấy những điều đó thông qua văn bản mô tả hàm biểu thức QGIS.

1 SpatialDigger Dec 18 2020 at 00:51

Chắc chắn có một cách tốt hơn, sau một lần đoán ngẫu nhiên tôi đã nhận được điều này.

Substr("CreatedAT",0,-9)
To_date("CreatedAt", format('dd/MM/yyyy'))
Format_date("EndDate",'yyyy/MM/dd')

Tôi sẽ để điều này ở đây một lúc để mọi người có cơ hội tìm ra cách hùng hồn hơn để làm điều này.