LoginSignup
3
4

More than 5 years have passed since last update.

SQL Serverで、yyyyMMddHHmmss形式の文字列をDateTime型に変換する

Posted at

OracleからSQLServerへのマイグレを行うプロジェクトに携わった時のメモ。

プログラムから渡されるyyyyMMddHHmmss形式の文字列をDateTime型に変換する際にスムーズに行かなかったので以下のやり方で対応した。

Oracle
to_date('20171121235959', 'YYYYMMDDHH24MISS')
SQLSERVER
--SQLServerのSTUFF関数で半角スペースと':'を挿入し、yyyyMMdd HH:mm:ss形式にすることで、convert関数そのままDateTime型にキャストすることが可能。
--※そのままというのは、第3引数が不要ということ。
convert(DateTime,stuff(stuff(stuff('20171121235959', 9, 0, ' '), 12, 0, ':'),15, 0, ':'))
メモ
/*
--他にもyyyy-MM-dd HH:mm:ssやyyyy/MM/dd HH:mm:ss形式に変えてから渡すとCONVERT関数の第三引数にStyle値を渡す必要がなくなる。


・・・。何でこの文章をコメントで書いているかというと、本文書くときに:mmという文字が絵文字になっちゃうため。
だれか絵文字のエスケープ教えてくださいm(_ _)m
*/
3
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
4