日付と時刻を次のような形式で db に挿入したい:
「2013 年 5 月 20 日 5 時 45 分」
2分前、ちょうど今、または6か月前などの形式で表示したい場合は、どうすればよいですか.. :)
これを行う方法を教えてください。
前もって感謝します。
データベースは、データを保存し、それらについて質問したり回答したりできるようにするために存在します。アプリケーションは行き来します。データは永遠に続く可能性があります。では、どのような質問をすればよいでしょうか。確かに、問題のドメインがわからないため、これらは推測に過ぎません。
過去 7 日間で何件の注文を処理しましたか?
SELECT COUNT(*) "Orders last week" FROM ORDERS
WHERE
orderDate >= SYSDATE - 7 -- Oracle code
日付を文字列に変換した場合、これはできません。
期限切れの図書館の本を持っているのは誰ですか? どれ?
SELECT u,id, u.first_name, u.last_name, b.id, b.book_name
FROM User u
JOIN Book b ON u.id = b.borrower_id
WHERE b.due_date < SYSDATE
AND b.returned = 0 -- Oracle doesn't have "BOOLEANS" yet.
日付演算を実行できます。日付データに数値を足したり引いたりすると、何日も後または前の日付が得られます。「日付の次の火曜日」または「年の最初」を与える関数があります。日付を文字列として保存すると、すべてが閉じられます。
会社のフランス部門の日付を書式設定する必要があるとします。日付文字列でそれを行うことができますか? データベースではなく、アプリケーションのフォーマットのままにしておきます。
これは、Model-View-Controller アーキテクチャの重要性の例です。データを保持する部分であるモデルは、特定のアプリケーションから独立していなければならないため、どのアプリケーションでも動作できます。データベースは確かにモデルの一部です。
私は C# を知りませんが、同様のコードが SQL-Server に存在し、おそらくそれを使用していると思います。
日付/日付時刻データを文字列として保存するのは完全に間違っていますが、ToString
オーバーロードを使用して形式を指定できます。
var stringedDate = DateTime.Now.ToString("dd MM',' yyyy 'at' H':'mm");