Làm cách nào để truyền chuỗi có định dạng 'dd-MM-yyyy' sang loại ngày cũng có định dạng 'dd-MM-yyyy' trong Hive?Chuỗi ký tự Hive cho đến ngày dd-MM-yyyy
cái gì đó dọc theo dòng:
CAST('12-03-2010' as date 'dd-mm-yyyy')
Làm cách nào để truyền chuỗi có định dạng 'dd-MM-yyyy' sang loại ngày cũng có định dạng 'dd-MM-yyyy' trong Hive?Chuỗi ký tự Hive cho đến ngày dd-MM-yyyy
cái gì đó dọc theo dòng:
CAST('12-03-2010' as date 'dd-mm-yyyy')
thử:
from_unixtime(unix_timestamp('12-03-2010' , 'dd-MM-yyyy'))
Đó vẫn là * Chuỗi *, với định dạng * TimeStamp *. Để đưa nó vào * Date * bạn phải bọc nó trong 'cast (to_date (from_unixtime (unix_timestamp (STR_DMY, 'dd-MM-yyyy'))) làm ngày)' –
Và có, tôi ước có một cách tốt hơn để thao tác ngày trong Hive: - / –
AFAIK bạn phải định dạng lại bạn Chuỗi trong định dạng ISO để có thể đúc nó như là một ngày :
cast(concat(substr(STR_DMY,7,4), '-',
substr(STR_DMY,1,2), '-',
substr(STR_DMY,4,2)
)
as date
) as DT
Để phân phối đặt một ngày như một Chuỗi với định dạng cụ thể, thì đó là cách khác xung quanh, trừ khi bạn có Hive 1.2+ và có thể sử dụng date_format()
=> bạn đã check the documentation bằng cách này?
Không có thứ như "loại ngày có định dạng cụ thể". Loại DATE được lưu dưới dạng nhị phân và được hiển thị theo mặc định ở định dạng ISO; nếu bạn muốn hiển thị nó ở định dạng khác, bạn phải định dạng nó một cách rõ ràng, trên từng trường hợp cụ thể. –