Điều này có vẻ điên đến rất nhiều các nhà phát triển người muốn tận dụng lợi thế của các chức năng cơ sở dữ liệu,
Nhưng sau khi có các vấn đề đầy đủ, tạo và sửa lỗi các ứng dụng cho mysql và postgrsql với các hàm so sánh php, tôi đã đi đến kết luận (cho bản thân mình), cách dễ nhất, đó là đơn giản nhất với ít đau đầu SQL hơn. tận dụng lợi thế của bất kỳ người trong số họ.
Tại sao? bởi vì nếu bạn đang phát triển trong một ngôn ngữ trung gian như PHP, PHP có tất cả các hàm này, và chúng dễ thực hiện hơn trong ode ứng dụng khi so sánh các số nguyên. Dấu thời gian PostgreSQL không phải là == UNIX TIMESTAMP và dấu thời gian UNIX của MySQL KHÔNG phải là dấu thời gian của PostgresQL hoặc Oracles .. nó trở nên khó khăn hơn nếu bạn sử dụng dấu thời gian của cơ sở dữ liệu ..
vì vậy chỉ cần sử dụng số nguyên, không phải dấu thời gian, làm số số giây kể từ ngày 1 tháng 1 năm 1970 nửa đêm. và đừng bận tâm đến dấu thời gian của cơ sở dữ liệu. và sử dụng gmdate() và lưu trữ mọi thứ dưới dạng thời gian gmt để tránh các vấn đề múi giờ.
nếu bạn cần tìm kiếm, sắp xếp hoặc so sánh ngày với dữ liệu khác hoặc tháng hoặc năm hoặc ngày trong tuần hoặc bất kỳ thứ gì trong ứng dụng của bạn, và kiểu dữ liệu INTEGER cho time_day, time_hour, time_seconds. hoặc bất cứ điều gì bạn muốn để chỉ mục được tìm kiếm sẽ làm cho cơ sở dữ liệu dễ dàng hơn và di động hơn. bạn chỉ có thể sử dụng một trường, trong hầu hết các trường hợp: INTEGER time_created NOT NULL
(nhiều trường trong hàng cơ sở dữ liệu của bạn là nhược điểm duy nhất của giải pháp này mà không tìm thấy) coffee :)
Chức năng ngày của php là nổi bật so với ngày tháng, nhưng trong mysql hoặc postgresql, so sánh ngày tháng? nah .. sử dụng so sánh số nguyên sql
tôi nhận thấy có thể SEEM dễ sử dụng CURRENT_TIMESTAMP trên hàm chèn. HA! không bị lừa.
Bạn không thể làm DELETE FROM SESSION_TABLE WHERE time-initialized < '2 days'
nếu thời gian intitialized là dấu thời gian postgresql. nhưng bạn có thể làm:
DELETE FROM SESSION_TABLE WHERE time_initialized < '$yesterday'
Chừng nào bạn đặt $ ngày hôm qua trong php là số nguyên giây kể từ năm 1970 mà ngày hôm qua đã.
Việc dọn dẹp bản ghi phiên làm việc dễ dàng hơn so sánh các dấu thời gian trong các câu lệnh chọn postgresql.
CHỌN tuổi(), CHỌN trích xuất() và asbtime là những cơn đau đầu của chính chúng. Đây chỉ là ý kiến của tôi.
bạn có thể làm thêm, trừ, <,>, tất cả với ngày php đối tượng
_peter_sysko U4EA Networks, Inc.
Điều này thực sự là gần nhất. Việc bỏ tất cả các số thập phân không phải là một vấn đề mặc dù tôi khá buồn vì thiếu một hàm tích hợp để làm điều này như MySQL. – TheLizardKing
Không được có bất kỳ số thập phân nào vì nó sẽ thực hiện phân chia số nguyên. – araqnid
araqnid, tôi cũng nghĩ như vậy, nhưng tôi đã thử và nó thực sự có năng suất nổi. –