データベースのフィールド DATE の形式は次のとおりです。
2012-11-12 00:00:00
日付から時間を削除して、次のように日付を返したいと思います。
11/12/2012
データベースのフィールド DATE の形式は次のとおりです。
2012-11-12 00:00:00
日付から時間を削除して、次のように日付を返したいと思います。
11/12/2012
まず最初に、日付が varchar 形式の変更である場合、日付を日付として保存すると、多くの頭痛の種を節約できます。これは、遅かれ早かれ行うのが最善です。問題は悪化するだけです。
次に、日付を取得したら、日付を varchar に変換しないでください。日付形式のままにし、アプリケーション側で書式設定を使用して、必要な日付形式を取得します。
これを行うには、DBMS に応じてさまざまな方法があります。
SQL Server 2008以降:
SELECT CAST(CURRENT_TIMESTAMP AS DATE)
SQL Server 2005以前
SELECT DATEADD(DAY, DATEDIFF(DAY, 0, CURRENT_TIMESTAMP), 0)
SQLite
SELECT DATE(NOW())
オラクル
SELECT TRUNC(CURRENT_TIMESTAMP)
Postgresql
SELECT CURRENT_TIMESTAMP::DATE
レポートで文化固有の書式を使用する必要がある場合は、受け取るテキスト ボックスの書式 (例: dd/MM/yyyy) を明示的に指定するか、その言語に関連する日付書式が表示されるように言語を設定できます。
いずれにせよ、SQL 内で varchar に変換すると、レポートで行う並べ替えに影響するため、これは SQL の外で処理する方がはるかに適切です。
データ型を DATETIME に変更できない/変更しない場合でも、CONVERT(DATETIME, yourField)
レポート サービスに送信する前に SQL 内で日付に変換し (例: )、上記のように処理します。
( TSQL で)使用するだけです
SELECT convert(varchar, columnName, 101)
MySQLで
SELECT DATE_FORMAT(columnName, '%m/%d/%Y')
この方法は非常に有用であることがわかりました。ただし、日付/時刻形式は日付だけに変換されますが、必要な作業が少なくなることはありません。(レポートに日付を表示する必要があっただけで、時間は関係ありませんでした)。
CAST(start_date AS DATE)
アップデート
(私は研修生です;))
SSRSを使用している場合、これを行う簡単な方法を考えました。
レポート内でフィールドが配置されているテキスト ボックスのプロパティを実際に変更する方が簡単です。フィールドを右クリック>数値>日付を選択し、適切な形式を選択してください!
個人的には、完全なネイティブの日時値を返し、これをクライアント コードでフォーマットします。
そうすれば、ユーザーのロケール設定を使用して、そのユーザーに正しい意味を与えることができます。
「11/12」はあいまいです。それは...ですか:
SELECT DATE('2012-11-12 00:00:00');
戻り値
2012-11-12
詳細については、これを参照してください: SQL Server の日付形式
[MM/DD/YYYY]
SELECT CONVERT(VARCHAR(10), cast(dt_col as date), 101) from tbl
[DD/MM/YYYY]
SELECT CONVERT(VARCHAR(10), cast(dt_col as date), 103) from tbl
少なくとも mysql では、DATE(theDate)
.
次のことを試してみてください。
SELECT CONVERT(VARCHAR(10),yourdate,101);
またはこれ:
select cast(floor(cast(urdate as float)) as datetime);
次の SQL を使用します。
SELECT DATE_FORMAT(date_column_here,'%d/%m/%Y') FROM table_name;