2012-09-09 31 views
54

Tôi đang lưu trữ trường DATETIME trong Bảng. Sau khi lưu trữ giá trị của nó, hãy đến như 2012-09-09 06:57:12.Cách chia một phần DATE và TIME từ DATETIME trong MySQL

Để lưu trữ Tôi đang sử dụng cú pháp:

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

Bây giờ Câu hỏi của tôi là, khi tìm nạp dữ liệu, như thế nào có thể có được cả hai ngày và thời gian riêng, 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.

+0

lẽ bạn đang tìm kiếm cho 'DATE_FORMAT' và không 'và' DATE' TIME' bở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, xem câu trả lời của tôi dưới đây. –

Trả lời

90

Bạn có thể đạt được điều đó bằ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

+0

Xin chào, Cách nhận giá trị ?? tôi có thể sử dụng 'echo DATEONLY' cho Ngày in và' echo TIMEONLY' để in thời gian không? Hay cái gì?? –

+0

@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. –

+2

@MissRosy [nhấp vào liên kết để trình diễn] (http://sqlfiddle.com/#!2/d41d8/1853) –

13

Hãy thử:

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

điều này sẽ không nhận 'DATE' và' TIME' chỉ như những gì người dùng đang yêu cầu. Nó sẽ cung cấp cho toàn bộ ngày tháng và thời gian với các giá trị mặc định của nó. [BÁN LIÊN KẾT NÀY] (http://sqlfiddle.com/#!2/d41d8/1845) –

+1

nó sẽ tạo ra 'Tháng Chín, 09 2012 00: 00: 00-0400' cho * DATE * và' January, 01 1970 03 : 20: 38-0500' cho * TIME * –

+2

, theo truy vấn, nó cung cấp cho 2012-09-09 là date_part và 06:57:12 như là một phần thời gian trong mysql –

30

mỗi tài liệu mysql, các Hàm DATE() sẽ kéo phần ngày của một feild datetime, và TIME() cho phần thời gian. vì vậy tôi sẽ cố gắng:

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

Đối với chỉ ngày sử dụng
date("Y-m-d");

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

+4

hey bạn đưa ra một giải pháp của php không sql :) – maq

Các vấn đề liên quan