저는 SQL에 익숙하지 않지만 최근에는 TIME
으로 정의 된 열을 보유한 테이블을 만들었습니다. 웬일인지 나는이 분야가 12 AM (23:59:99.999
) 바로 아래의 값을 잡을 수 없다. 내 단순화 된 TSQL은 아래와 같습니다.TIME 값 생성, 저장 및 사용
Msg 241, Level 16, State 1, Line 1
Conversion failed when converting date and/or time from character string.
것은 내가 가장 낮은 시간 '해상도'에 시간 값 수 설정 및 성공적 필드 업데이트 :
DECLARE @Time TIME = '23:59:99.99999'
UPDATE tblProjectSLA
SET colSLATime = @Time
WHERE SLAID IN (22, 24)
나는 다음과 같은 오류가 발생합니다. 이 SQL 관리인에 나타나는 여기
DECLARE @Time DATETIME = '23:59'
내가 그것을 쿼리 할 때 결과입니다
DECLARE @Time TIME = CAST('23:59:99.99999' AS TIME)
: 나는 또한 시간에 문자열 값을 캐스팅 ... 같은 오류를 시도
colSLATime
23:59:00.0000000
내가 이상한 점은 테이블의 정밀도가 16이고 스케일이 7로 정의되었으므로 테이블에 저장된 값에 가까운 값을 사용할 수 없어야한다는 것입니다. 여기
는 열 colSLATime가합니다 (sp_help는 명령을 사용하여 쉽게 읽을 전치) ... 정의 누군가가 기능에 간단한 토론에를 사용 & 아웃을 날 지점 수 있다면
Column_name colSLATime
Type time
Computed no
Length 5
Prec 16
Scale 7
Nullable yes
TrimTrailingBlanks (n/a)
FixedLenNullInSource (n/a)
Collation NULL
방법입니다 TIME 데이터 유형. 아니면 스크랩하고 VARCHAR 필드와 CAST를 런타임에 사용해야합니다 (추측하지 마라).
time (Transact-SQL)
SQL Server 2008 R2
Range 00:00:00.0000000 through 23:59:59.9999999
긴 단어가 있습니다 – Lamak
지즈! ... 나무를 통해 숲을 볼 수 없습니다! DECLARE @ 시간 = '23 : 59 : 59.9999999 '일했습니다! 나를 똑바로 설정해 주셔서 감사합니다! – TonyBromo