Thành phần thời gian dải Mysql từ datetime


90

Tôi cần thực hiện so sánh ngày trong Mysql mà không tính đến thành phần thời gian, tức là tôi cần chuyển đổi '2008-11-05 14:30:00' thành '2008-11-05'

Hiện tại tôi đang làm điều này:

SELECT from_days(to_days(my_date))

Có một cách thích hợp để làm điều này?

Câu trả lời:



14

select date(somedate) là phổ biến nhất.

Nếu bạn cần thích ứng với các định dạng khác, bạn có thể sử dụng:

SELECT DATE_FORMAT(your_date, '%Y-%m-%d');

2
Ví dụ: DATE_FORMAT rất hữu ích để chỉ trích xuất thành phần năm. Cảm ơn bạn.
Mario Awad

3

Trong PostgreSQL, bạn sử dụng hàm TRUNC (), nhưng tôi không thấy nó cho MySQL. Từ Googling ngắn gọn của tôi, có vẻ như bạn sẽ cần chuyển giá trị DATETIME của mình thành DATE.

date_col = CAST(NOW() AS DATE)

Xem http://dev.mysql.com/doc/refman/5.0/en/date-and-time-types.html


1
date_trunc()(not trunc()) sẽ không thực sự loại bỏ phần thời gian trong Postgres. Nó chỉ đơn thuần đặt nó thành 00:00:00một cái gì đó khác.
a_horse_with_no_name

0

Chỉ là một cách đơn giản để làm việc đó date("d F Y",strtotime($row['date']))$row['date']xuất phát từ yêu cầu của bạn


-5

Bạn đã có thể sử dụng ToShortDateString();


Đó không phải là một hàm C #? Câu hỏi đặt ra là sau khi một giải pháp MySQL
andrewsi

Đó là C # và thực sự nó không loại bỏ dấu thời gian: Chuyển đổi giá trị của đối tượng DateTime hiện tại thành biểu diễn chuỗi ngày ngắn tương đương của nó.
Nizar B.
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.