2016-10-24 6 views
1

私はdatetimeに時間を追加する必要があるMySQLクエリでアプリケーションを持っています。この目的のために、私はLaravelフレームワークを使用していますし、テストのためだけに、私はこのDATE_ADD関数が存在しないのSQLiteを使用していると私はこのクエリmysqlとsqliteの日付の追加

SELECT datetime(some_column, "+4 Hour") FROM some_table 
を使用する必要があります例

SELECT DATE_ADD(some_column, INTERVAL 4 HOUR) FROM some_table 

のために使いやすいです

これは、PHPUnitがsqliteを使用している間にアプリケーションがmysqlを使用しているため問題です。関数を使用してdatetimeに時間を追加する方法はありますか?どちらのデータベースでも動作しますか、それを行うには効果的な方法がありますか?

答えて

0

Laravelはschembuilderでdatetimeに組み込まれています $ table-> timestamps();

詳細なヘルプhttps://laravel.com/docs/4.2/schema#adding-columns

+0

私はそれを知っているが、私は、この目的のためにPDOを使用しています。 –

0
あなたがPHPを使用して日付を変更することができ

  • 日付( 'はYmd H:I:s' は、のstrtotime( '+ 4時間' のstrtotime($日付)) )

または

  • 日付( 'はYmd H:I:s' は、のstrtotime( '+ 4時間'、$日付))あなたの日付はtimestaある場合4時間進んで現在の時刻であるタイムスタンプを生成します
+0

From句の部分文字列としてdate_add関数を使用しているため、データをフィルタリングするためにmysqlを必要とし、その後はPHPを使用できないように結果を取得します。 –

+0

この回答を確認してください:http://stackoverflow.com/a/32627612/5359470? – EkinOf

+0

これはmysqlからsqliteに変換するだけですが、どちらのデータベースでも機能する関数が必要です。 –

0
$date = Carbon:now()->addHours(4); 

融点

+0

EkinsOfの答えと同じですが、PHP関数を使用できません。MySQL関数を使用してサブクエリでフィルタリングされたデータを取得します –

+0

私たちはテーブルのサンプルレコードをいくつか見て、問題のテーブルの 'DDL'を見てみましょう –