Cách chia DATE và TIME khỏi DATETIME trong MySQL


82

Tôi đang lưu trữ trường DATETIME trong Bảng. Mỗi giá trị trông giống như sau: 2012-09-09 06:57:12 .

Tôi đang sử dụng cú pháp này:

   date("Y-m-d H:i:s");

Bây giờ câu hỏi của tôi là, trong khi tìm nạp dữ liệu, làm thế nào có thể lấy cả ngày và giờ riêng biệt , bằng cách sử dụng truy vấn MySQL duy nhất?

Ngày như 2012-09-09 và thời gian như 06:57:12 .


có thể bạn đang tìm kiếm DATE_FORMATvà không phải DATETIMEbởi vì nó sẽ cung cấp cho bạn ngày mặc định nếu bạn đang tìm kiếm thời gian và thời gian mặc định nếu bạn đang tìm kiếm ngày, hãy xem câu trả lời của tôi bên dưới.
John Woo

Câu trả lời:


126

Bạn có thể đạt được điều đó bằng cách sử dụng DATE_FORMAT () ( nhấp vào liên kết để biết thêm các định dạng khác )

SELECT DATE_FORMAT(colName, '%Y-%m-%d') DATEONLY, 
       DATE_FORMAT(colName,'%H:%i:%s') TIMEONLY

SQLFiddle Demo


Xin chào, Làm thế nào để nhận được giá trị ?? tôi có thể sử dụng echo DATEONLYđể in ngày và echo TIMEONLYin thời gian không ?? Hay cái gì??
Miss Rosy

@MissRosy vâng, bạn có thể sử dụng bí danh của họ ( ví dụ: DATEONLY và TIMEONLY ) để nhận các giá trị bạn muốn.
John Woo


@MissRosy, bạn được chào đón. điều tốt nhất là bạn có thể định dạng nó thành bất kỳ hình thức nào bạn muốn.
John Woo

@ John..yes..Tôi thích điều đó :)
Miss Rosy

49

theo tài liệu mysql, hàm DATE () sẽ kéo phần ngày của nhóm datetime và TIME () cho phần thời gian. vì vậy tôi sẽ thử:

select DATE(dateTimeFeild) as Date, TIME(dateTimeFeild) as Time, col2, col3, FROM Table1 ...

17

Thử:

SELECT DATE(`date_time_field`) AS date_part, TIME(`date_time_field`) AS time_part FROM `your_table`

điều này sẽ không nhận được DATETIMEduy nhất như những gì người dùng đang yêu cầu. Nó sẽ cung cấp toàn bộ ngày và giờ với các giá trị mặc định của nó. BÁN LIÊN KẾT NÀY
John Woo

1
nó sẽ tạo ra September, 09 2012 00:00:00-0400cho NGÀYJanuary, 01 1970 03:20:38-0500cho LÚC NÀO
John Woo

4
cũng như cho mỗi truy vấn nó mang lại cho 2012/09/09 như date_part và 6:57:12 như thời gian tham gia vào mysql
Sudhir Bastakoti

@ Sudhir..Cảm ơn rất nhiều vì đã trả lời. Điều này cũng đúng nhưng..sử dụng DATE_FORMAT()giúp bạn linh hoạt hơn.
Miss Rosy

1
@MissRosy chào đón, và có bạn nên sử dụng một giải pháp mà bộ quần áo nhiều nhất và là linh hoạt hơn .. :)
Sudhir Bastakoti


-2

Chỉ sử dụng trong ngày
date("Y-m-d");

và chỉ sử dụng trong thời gian
date("H:i:s");


6
này, bạn đang đưa ra giải pháp php không phải của sql :)
maq
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.