[解決済み] YYYYMMDDをDATEに変換する
質問
の中に日付の束があります。
varchar
このように
20080107
20090101
20100405
...
このように日付形式に変換するにはどうすればよいのでしょうか。
2008-01-07
2009-01-01
2010-04-05
これを使ってみました。
SELECT [FIRST_NAME]
,[MIDDLE_NAME]
,[LAST_NAME]
,cast([GRADUATION_DATE] as date)
FROM mydb
しかし、このようなメッセージが表示されます。
Msg 241, レベル16, ステート1, ライン2
文字列から日付や時刻を変換する際に、変換に失敗しました。
解決方法は?
エラーが発生する原因は、あなた(またはこのテーブルを設計した人)です。
have a bunch of dates in VARCHAR
. なぜ、あなた(またはこのテーブルを設計した人)は日付を文字列として保存しているのですか?あなた(またはこのテーブルを設計した人)は、給与や価格や距離も文字列として保存していますか?
問題を引き起こしている値を見つけるため(あなた(またはこのテーブルを設計した人)がそれを修正できるように)。
SELECT GRADUATION_DATE FROM mydb
WHERE ISDATE(GRADUATION_DATE) = 0;
少なくとも1行はあるはずです。それらの値を修正し、テーブルを修正します。あるいは、テーブルをデザインした人に頼んで、テーブルを修正してもらいましょう。本当にうまく。
ALTER TABLE mydb ALTER COLUMN GRADUATION_DATE DATE;
これで、書式について心配する必要はありません。
YYYYMMDD
または
YYYY-MM-DD
を使うか、クライアント上で
CONVERT
をSQLで実行します。があるときは
有効な
の日付を文字列リテラルとして使用することができます。
SELECT CONVERT(CHAR(10), CONVERT(datetime, '20120101'), 120);
...しかし、これは(もし可能であれば)クライアントで行うのがよいでしょう。
ガベージ・イン、ガベージ・アウトという言葉があります。日付に変換することは絶対にできません。 文字列 もし、あなたのデータ型の選択(またはテーブルを設計した人のデータ型の選択)が、本質的にゴミをテーブルに入れるものであるなら、特定のフォーマットで)。それを修正してください。あるいは、テーブルを設計した人に(もう一度、本当にうまく)修正するように頼んでください。
関連
-
[解決済み] datetimeの挿入時に文字列から日付や時刻を変換すると、変換に失敗する
-
[解決済み] varchar 値 'simple, ' をデータ型 int に変換する際に変換に失敗しました。
-
[解決済み】集約関数のないTSQLピボット
-
[解決済み】単一のクエリで加重平均を計算する
-
[解決済み] mongoの外部キー?
-
[解決済み] ORA-01735: 無効な ALTER TABLE オプション - ヒキガエル
-
[解決済み] FROM のサブクエリにはエイリアスが必要です。
-
[解決済み] nvarchar 値 ... をデータ型 int に変換する際に、変換に失敗しました。
-
[解決済み] Oracle Trigger ORA-04098: トリガーが無効で、再バリデーションに失敗しました。
-
[解決済み] SQL Server の DateTime データ型から日付だけを返す方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】集約関数のないTSQLピボット
-
[解決済み】SQL Server: 無効なカラム名
-
[解決済み] ''付近の構文が正しくない
-
[解決済み] SQLクエリ「00904. 00000 - "%s: 無効な識別子".
-
[解決済み] ORA-04063: ビューにエラーがあります
-
[解決済み] "このSqlTransactionは完了しました。もう使用できません。"...設定エラー?
-
[解決済み] Oracle(LiveSQL)のSQL [重複]について
-
[解決済み] SQLエラーです。ORA-00922: オプションがないか無効です。
-
[解決済み] Ruby On Rails で NuoDB を使用して SQL コマンドを手動で実行する方法
-
[解決済み] アクセスクエリーエラー(from句のシンタックスエラー)