- PR -

日付の書式

1
投稿者投稿内容
マスオカ
会議室デビュー日: 2006/04/13
投稿数: 3
投稿日時: 2006-04-13 17:48

このようなストアドを実行したら「2006-03-08」という結果が返ってきました
マニュアルを見ると111と指定すればyyyy/mm/dd の形式で返ってくると書いてあったのですが
実際の結果は/ではなく-で編集されてしまいます。
このままだと文字列として比較したときにイコールにならないので
かならず/で編集されるようにしたいのですがどうすればよいのでしょうか?
サーバーのコントロールパネルから日付の設定を見るとyyyy/mm/ddになっていました
他にもどこかに影響される設定があるのでしょうか?

SET @I_DATE = CAST(@I_YUSHO_KAISHI_YMD AS datetime)
SET @I_DATE = DATEADD(mm,1,@I_DATE)
SET @I_YUSHO_KAISHI_MEISAI_YMD = CONVERT(varchar(10) , @I_DATE , 111)

やりたいことは文字列で入っている日付項目に一ヶ月足した値を別の項目に書き込みたいだけです。
今川 美保(夏椰)
ぬし
会議室デビュー日: 2004/06/10
投稿数: 363
お住まい・勤務地: 神奈川県茅ヶ崎市
投稿日時: 2006-04-13 18:48
.NETにところに書かれていますが、
内容的にはSQLServerだと思っていいでしょうか?

SQLServerだとしての話ですが、

SQLServer2005Expressで以下のようなロジックを実行してみたところ、
@I_YUSHO_KAISHI_MEISAI_YMDには「2006/03/08」が入っていました。

「2006-03-08」で表示されるのはDATETIME型の場合だと思うので、
念のため、見ているのがDATETIMEの@I_DATEではなく@I_YUSHO_KAISHI_MEISAI_YMDであることを確認してもらっていいですか?
それでもおかしかったらSQLServerのバージョンなど
実行環境を提示したほうがいいかと思います。


ロジック
コード:
DECLARE 
 @I_DATE DATETIME,
 @I_YUSHO_KAISHI_YMD as Varchar(10),
 @I_YUSHO_KAISHI_MEISAI_YMD Varchar(10)
BEGIN
 SET @I_YUSHO_KAISHI_YMD = '2006/02/08' 
 SET @I_DATE = CAST(@I_YUSHO_KAISHI_YMD AS datetime)
 SET @I_DATE = DATEADD(mm,1,@I_DATE)
 SET @I_YUSHO_KAISHI_MEISAI_YMD = CONVERT(varchar(10) , @I_DATE , 111) 

 select @I_YUSHO_KAISHI_YMD, @I_YUSHO_KAISHI_MEISAI_YMD,@I_DATE ;

End ;



結果
コード:
2006/02/08	2006/03/08	2006-03-08 00:00:00.000

1

スキルアップ/キャリアアップ(JOB@IT)