私はMySQLとphpMyAdminで作業しています。私は私のデータベースに '日付'フィールドを持っていると私は計算し、各レコード/行の '日付'フィールドの日付以降の過去の日数を表示するMySQL_dbのフィールドを作成する必要があります。保存された日付フィールドを使用して、渡された現在の日数を計算するフィールドを計算しました
PHPでコードを生成する機能はありません。
この計算をMySQL_dbに表示するためのフィールドをMySQLに作成する方法はありますか?
私はMySQLとphpMyAdminで作業しています。私は私のデータベースに '日付'フィールドを持っていると私は計算し、各レコード/行の '日付'フィールドの日付以降の過去の日数を表示するMySQL_dbのフィールドを作成する必要があります。保存された日付フィールドを使用して、渡された現在の日数を計算するフィールドを計算しました
PHPでコードを生成する機能はありません。
この計算をMySQL_dbに表示するためのフィールドをMySQLに作成する方法はありますか?
あなたがここに(将来的にあなたのために有用である可能性がMySQLで、その他の機能)CURDATE()
とDATEDIFF()
機能について読むのが好きかもしれません:https://dev.mysql.com/doc/refman/5.7/en/date-and-time-functions.html#function_datediff
SELECT *, DATEDIFF(CURDATE(), mydatefield) AS days_since
FROM MyTable;
あなたがこのテーブルに組み込まれたい場合は非決定論を使用しているので、あなたが式に基づいて仮想列を追加することができますが、これはこのケースでは動作しません
CREATE VIEW MyView AS
SELECT *, DATEDIFF(CURDATE(), mydatefield) AS days_since
FROM MyTable;
のMySQL 5.7をサポートgenerated columns:、あなたはVIEWを使用することができますそのような式ではCURDATE()のような関数は使用できません。
ALTER TABLE MyTable ADD COLUMN days_since INT AS (DATEDIFF(CURDATE(), mydatefield));
ERROR 3102 (HY000): Expression of generated column 'days_since' contains a disallowed function.
私はアプリケーション(PhP)コードを変更できる場合、私はこの関数を作成するためにDATEDIFF()を使用できることを知っています。私はできない。私の唯一の手段は、問題の「日付」からの「日数」をMySQLテーブルの外に出すことです。それが不可能な場合は私には他に選択肢がありません。 –
私はあなたのニーズを満たしていない理由を理解していないと思います。 –
これは、計算フィールドを追加する単なるALTER TABLEではありませんか? –
おそらく私は明確にすべきです。私は何を求めているのですか?同じテーブルレコード/行の既存のDATEフィールドからの日数を数える、MySQL TABLEのフィールドを作成する方法はありますか? –
なぜPHPタグですか? – Strawberry