ClassicASP 문자열을 smalldatetime 데이터 형식으로 변환하지 못했습니다.
페이지 정보
본문
Microsoft OLE DB Provider for SQL Server 오류 '80040e07'
문자열을 smalldatetime 데이터 형식으로 변환하지 못했습니다.
/helper/edit_ok.asp, 줄 98
98줄을 request 로 찍어보니 아래와 같이 created 필드 속성이 samlldatetime 인데...
저장하고자 하는 값에 "오전", "오후"의 값을 insert 시도로 인한 문제라는 것이 확인되었습니다.
sql = "insert into tbl_edit (idx, startdate, created) values ('6918', '"& ori_startdate &"', '"& ori_created &"')
response.write sql
결과: insert into tbl_edit (idx, startdate, created) values ('6918', '2014-01-27', '2014-01-27 오후 3:34:00')
[ 원본 ]
ori_created = objRS("created")
[ 방법1 ]
별도 함수를 만들어서 사용
'<< datetime 타입 필드의 데이터를 asp로 뿌릴때 >>
Function GetTime(sData)
Dim sDate, sTime, sSec
If IsNull(sData) = False And sData <> "" Then
'// 날짜를 가지고 온다.
sDate = FormatDateTime(sData, 2)
'// 시간을 가지고 온다.
sTime = FormatDateTime(sData, 4)
'// 초를 가지고 온다.
sSec = Right(sData, 2)
'// 날짜 시간 형태로 만든다.
GetTime = sDate & " " & sTime & ":" & sSec
End If
End Function
ori_created = GetTime(objRS("created"))
[ 방법2 ]
날짜 타입을 문자열로 변환하여 출력
구문만 쓰면..
CONVERT ( data_type [ ( length ) ] , expression [ , style ] )
convert( datatype, 날짜컬럼명, 114또는 120 또는 121)
select *, convert(varchar(20), created, 114) as convertDateTime from table명 where 조건절 => 분까지
select *, convert(varchar(20), created, 120) as convertDateTime from table명 where 조건절 => 초까지
select *, convert(varchar(23), created, 121) as convertDateTime from table명 where 조건절 => ms까지
ori_created = objRS("convertDateTime")
참고자료
http://www.taeyo.pe.kr/Forum/Content.aspx?SEQ=153431&TBL=ASP
http://www.devpia.com/MAEUL/Contents/Detail.aspx?BoardID=56&MAEULNo=22&no=59480&ref=59480
문자열을 smalldatetime 데이터 형식으로 변환하지 못했습니다.
/helper/edit_ok.asp, 줄 98
98줄을 request 로 찍어보니 아래와 같이 created 필드 속성이 samlldatetime 인데...
저장하고자 하는 값에 "오전", "오후"의 값을 insert 시도로 인한 문제라는 것이 확인되었습니다.
sql = "insert into tbl_edit (idx, startdate, created) values ('6918', '"& ori_startdate &"', '"& ori_created &"')
response.write sql
결과: insert into tbl_edit (idx, startdate, created) values ('6918', '2014-01-27', '2014-01-27 오후 3:34:00')
[ 원본 ]
ori_created = objRS("created")
[ 방법1 ]
별도 함수를 만들어서 사용
'<< datetime 타입 필드의 데이터를 asp로 뿌릴때 >>
Function GetTime(sData)
Dim sDate, sTime, sSec
If IsNull(sData) = False And sData <> "" Then
'// 날짜를 가지고 온다.
sDate = FormatDateTime(sData, 2)
'// 시간을 가지고 온다.
sTime = FormatDateTime(sData, 4)
'// 초를 가지고 온다.
sSec = Right(sData, 2)
'// 날짜 시간 형태로 만든다.
GetTime = sDate & " " & sTime & ":" & sSec
End If
End Function
ori_created = GetTime(objRS("created"))
[ 방법2 ]
날짜 타입을 문자열로 변환하여 출력
구문만 쓰면..
CONVERT ( data_type [ ( length ) ] , expression [ , style ] )
convert( datatype, 날짜컬럼명, 114또는 120 또는 121)
select *, convert(varchar(20), created, 114) as convertDateTime from table명 where 조건절 => 분까지
select *, convert(varchar(20), created, 120) as convertDateTime from table명 where 조건절 => 초까지
select *, convert(varchar(23), created, 121) as convertDateTime from table명 where 조건절 => ms까지
ori_created = objRS("convertDateTime")
참고자료
http://www.taeyo.pe.kr/Forum/Content.aspx?SEQ=153431&TBL=ASP
http://www.devpia.com/MAEUL/Contents/Detail.aspx?BoardID=56&MAEULNo=22&no=59480&ref=59480
댓글목록
등록된 댓글이 없습니다.