時間比較クエリでは、int の方が大幅に効率的です。 http://www.jb51.net/article/29767.htm で縁起の良い記事を参照してください。
しかし、プロジェクトで作業したり、データベース内のデータを直接表示したりすると、この int が大きいことは一目瞭然です。たとえば、
ユーザーの登録時刻を確認するには:
select reg_time from t_xx_users where user_id=1;
このときの戻り値は int 値であり、特定の時刻を指定することはできません。直感的にわかるので、今回はdatetimeとintの変換です。質問です。
PHPの日付と時刻もそれに合わせて変換する必要があります。この記事の概要:
(1)php
int value:
time(): Unix エポック (1970 年 1 月 1 日 00:00 GMT) 以降の値を返します。 :00) を現在時刻 (秒単位) に戻します。
1970 年 1 月 1 日から 2012 年 2 月 10 日までの秒数を取得したいのですが、これは strtotime() によって実現できます。つまり、 strtotime('2012-2-10'); 🎜>date 値:
string date ( string format [, int timestamp] ) 例: 直接 date() は現在時刻を返します。もちろん、その形式を指定することもできます: たとえば、date(' Y-m -d',strtotime('2012-2-10'));
時間操作:
date('Y-m-d h:i:s',strtotime(' 1 週間')); ( 'Y-m-d h:i:s',strtotime(' 5 時間'));
date('Y-m-d h:i:s',strtotime('来週の月曜日)); i :s',strtotime('最後の日曜日'));
date('Y-m-d h:i:s',strtotime(' 1 day',12313223));!! int strtotime ( string time [, int) を参照してください。 now] )
(2)mysql:
int->datetime
select from_unixtime(int_time) from table;
datetime->
select unix_timestamp(date_time)テーブルから;
時間操作:
select dayofweek('2012-2-2'); は曜日を返します。
select dayofmonth('2012-2-2'); month 年間の日
select dayofyear('2012-2-2'); 年間の日を返します
同様の関数: month() day()hour()week().... 。
何日 date_add(date,interval 2 days);
-何日 date_sub(date,interval 2 days);
時間形式:
date_format(date,format)
select DATE_FORMAT ('1997-10-04 22:23:00','%W %M %Y');
その他の関数: TIME_TO_SEC() SEC_TO_TIME()...