sql >> データベース >  >> RDS >> Mysql

非論理的にフォーマットされた日付間の変換(/ slash /を-dash-に変更)

    $start_date = date('Y-m-d', strtotime(str_replace('/', '-', $query->row('startdate'))));
    

    または、さらに良いことに、データベース内のデータを変更するだけです:

    UPDATE `table` SET `startdate` = REPLACE(`startdate`, '/', '-');
    

    ...次に、フィールドをDATE型に変換します。

    ----編集----

    実は、榴散弾大佐にはポイントがあります...日付も逆にする必要があるという事実を見落としていたので、YYYY-MM-DDです。元の日付がDD/MM / YYYYの形式であると仮定すると、より適切なクエリは次のようになります。

    UPDATE `table` SET `date` = CONCAT(SUBSTRING(`date`, 7), '-', SUBSTRING(`date`, 4, 2), '-', SUBSTRING(`date`, 1, 2))
    

    これにより、構成要素がDATEに変換できる文字列に反転されます...元の日付文字列が先行ゼロを使用していない場合は、完全には機能しません1/6/2011 たとえば...その場合は少し賢いことをする必要があります。



    1. Postgresは最もクールなデータベースです–理由#2:ライセンス

    2. Postgresの2つの日付の間の日曜日を除く日数を数える方法は?

    3. SQL Server(T-SQL)のプロファイル内のデータベースメールアカウントのシーケンス番号を変更する方法

    4. SQL Server(T-SQL)でサーバー名を返す2つの方法