datetimes
の代わりにvarchars
を持つデータベースを継承しました。ある日付が他の日付よりも小さい場合、いくつかのレポートを作成できます。HeidiSQL varcharをDatetimeに変換する
私は、このデータベースのクエリを持っている:私は2つの日付の最後のmodififedと更新日付を持っている2016-02-17 23:59:59
:このに20160217
:
Select
RENEWDATE,
(CONCAT(substring(renewdate, 1,4), "-", substring(renewdate, 5,2), "-", substring(renewdate, 7,2), " 23:59:59"))
FROM solutionsdmp
WHERE Approval = "Approved"
GROUP BY Author
ORDER BY Author ASC
この日付フォーマットを変換します。それらはどちらもvarchars
として保存されていますが、異なる形式です。 1つはvarchar
として格納されますが、datetime
2015-02-17 23:59:59
のようにフォーマットされ、次に上記の他のものは20160217
として表示されます。それらを両方ともdatetimesに変換して、クエリを実行し、一方が他方よりも小さいかどうかをチェックできるようにしたいと思います。更新日が経過したかどうかを確認することができます。
私が働いていないバリエーションの多くを試してみたが、これは私の最新の試みです:
SELECT
RENEWDATE,
CONVERT(DATETIME,(CONCAT(substring(renewdate, 1,4), "-", substring(renewdate, 5,2), "-", substring(renewdate, 7,2), " 23:59:59")))
FROM solutionsdmp
WHERE Approval = "Approved"
GROUP BY Author
ORDER BY Author ASC
誰かが正しい方向に私を指すことができますか?
ありがとうございます!
*この日付がこの日付よりも小さいかどうかを伝えたいと思っています* ....もう少し詳しく説明できますか? – Hackerman
@Hackerman投稿を更新しました:) – hlh3406
クエリでifを使用して、より大きい値または小さい値を持つものを確認できます。https://mariadb.com/kb/en/mariadb/if -function/...変換でもhttps://www.techonthenet.com/mariadb/functions/str_to_date.phpを使用できます – Hackerman