Insert ngay thang vao database 2008-03-05 05:52:31

Cái form của em có 2 ô day và month riêng, Vậy khi thiết kế Database cần tách ra 2 cột day và month hay để chung 1 cột la date?

Chỉ giúp mình nhé, mới mò PHP nên cũng gà cái vụ này lắm hehe.

Tra loi 9 comment(s) Kính Lúp 2008-03-05 05:52:31

changtraingheo 2008-03-05 06:02:13

trong mysql có 1 kiểu dữ liệu là DATE (YYYY-MM-DD) và DATETIME (YYYY-MM-DD G:i:s) dựa vào đó mà bạn insert 1 cách tương ứng

@changtraingheo

gaulucky92 2008-03-07 07:21:16

Theo tui nên dùng hàm time() vì lấy được thời gian hiện tại chính xác nhất. Nếu dùng date() thì hình như nó lấy giờ của máy tính -> Ko chính xác.
Ngoài ra với time chỉ cần dùng 1 hàm gmdate();
Trong db bạn tạo 1 field có tên là date, type là INT.
Sau đó ở code insert bạn chỉ cần cho vào db dòng time()-> nó sẽ add vào db 1 dòng gồm 11 số.
Khi gọi date ra dùng hàm gmdate(), VD:
$date = gmdate("d/m/y h:i A", $row['date'] + 7*3600);

Chú thích:
$row['date']: đây là tên biến ứng với row date trong db (sử dụng mysql_fetch_array).
+7*3600: quyết định múi thời gian! Bạn ở VN, múi giờ là GMT+7 thì ghi +7, tương tự các nước khác cũng vậy.
d/m/y h:i A: định dạng ngày tháng cho dữ liệu được xuất ra. Bạn có thể chỉnh sửa kiểu hiện thị tùy ý, chẳng hạn như chỉ hiện tháng thì ghi "m" vào.
Nói chung đụng vào ngày tháng thì time() là OK nhất.

@gaulucky92

cocbay 2008-03-07 08:16:52

Không nên sử dụng kiểu INT để lưu dữ liệu dạng ngày tháng, vì khi lập trình trên các câu lệnh database sẽ rất khó khăn, mặc dù rất tiện lợi cho lập trình PHP.
Lấy 1 ví dụ nhỏ thôi nhe, trong 1 table có id, dulieu,..., date_create, rồi bây giờ "bạn hãy tìm cho tôi những bảng dữ liệu nào được tạo mà có tháng là tháng 3."

@cocbay

gaulucky92 2008-03-08 08:44:50

Chà, ko lẽ ko dùng gmdate được sao!? :(

@gaulucky92

cocbay 2008-03-08 09:30:59

Thêm hàm FROM_UNIXTIME nếu dùng gmdate
$sql_query = "SELECT * FROM [table] WHERE DATE_FORMAT(FROM_UNIXTIME(date_create),'%m') = 3";

@cocbay

gaulucky92 2008-03-08 03:27:14

%m chính là tùy chọn ngày tháng hả cocbay? Vậy có thể thay tương ứng với %d (ngày), %y (năm), %h (giờ),... được ko?
'date_create' là tên field hả?

@gaulucky92

NDT 2008-03-08 06:30:45

Mysql cũng hỗ trợ hàm để chuyển đổi ngày tháng dạng số hoặc dạng thông thường, không có gì có khó khăn cả!

@NDT

tanhuu.st@gmail.com 2011-06-24 11:20:49

@NDT: cho hoi ham chuyen doi ngay thang dang thong thuong la gi the @@
phai la date_format(%Y,colum); ko.
nhung sao chuyen dc du lieu tu dd/mm/yyyy=> yyyy/mm/dd ???
thank nhiu` :D

@tanhuu.st@gmail.com

thuytuetuyet@gmail.com 2016-11-03 02:13:10

trong mysql insert dữ liệu datetime thì phải làm sao ạ?

@thuytuetuyet@gmail.com

Reply