Làm thế nào để chuyển đổi một chuỗi thành ngày trong mysql?


149

Tôi có một stringcột hoạt động như một datevà tôi muốn chọn nó là một date.

Có thể không?

Định dạng dữ liệu mẫu của tôi sẽ là; month/day/year->12/31/2011

Câu trả lời:


258

Như đã nói tại MySQL Sử dụng cột chuỗi có văn bản ngày làm trường ngày , bạn có thể làm

SELECT  STR_TO_DATE(yourdatefield, '%m/%d/%Y')
FROM    yourtable

Bạn cũng có thể xử lý các chuỗi ngày này trong WHEREmệnh đề. Ví dụ

SELECT whatever
  FROM yourtable
 WHERE STR_TO_DATE(yourdatefield, '%m/%d/%Y') > CURDATE() - INTERVAL 7 DAY

Bạn có thể xử lý tất cả các loại bố cục ngày / giờ theo cách này. Vui lòng tham khảo các chỉ định định dạng cho DATE_FORMAT()chức năng để xem những gì bạn có thể đưa vào tham số thứ hai của STR_TO_DATE().


6
Tôi nghĩ rằng nó nên là INTERVAL 7 NGÀY thay vì NGÀY
Feras Odeh

1
Tôi có một cột char như định dạng "dd-mmm-yyyy". Làm thế nào để tôi truy vấn vào định dạng "dd-mm-yyyy"?
MAX

51
STR_TO_DATE('12/31/2011', '%m/%d/%Y')

Ngày được lưu trữ dưới định dạng DD / MM / YYYY như ngày 31/11/1015 là gì?
Vipul Hadiya

2
@VipulHadiya thay đổi chuỗi định dạng ngày thành %d/%m/%Ythích vì vậy STR_TO_DATE('31/11/1015', '%d/%m/%Y')hãy nhớ rằng đầu ra sẽ có YYYY-MM-DDđịnh dạng dưới dạng DATE kiểu dữ liệu.
fyrye

1
câu trả lời chỉ có mã là giá trị thấp trên StackOverflow. Hãy cải thiện câu trả lời đúng này.
mickmackusa

11

http://dev.mysql.com/doc/refman/5.5/en/date-and-time-fifts.html
sử dụng trang trên để tham khảo thêm Chức năng trong MySQL

SELECT  STR_TO_DATE(StringColumn, '%d-%b-%y')
FROM    table

nói ví dụ sử dụng truy vấn dưới đây để có được đầu ra

SELECT STR_TO_DATE('23-feb-14', '%d-%b-%y') FROM table

Đối với định dạng Chuỗi, sử dụng liên kết dưới đây

http://dev.mysql.com/doc/refman/5.5/en/date-and-time-fifts.html#feft_date-format


10

Đây là hai ví dụ khác.

Để xuất ngày, tháng và năm, bạn có thể sử dụng:

select STR_TO_DATE('14/02/2015', '%d/%m/%Y');

Sản xuất:

2015/02/14

Để cũng xuất thời gian, bạn có thể sử dụng:

select STR_TO_DATE('14/02/2017 23:38:12', '%d/%m/%Y %T');

Sản xuất:

2017/02/14 23:38:12

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.