select CONVERT(varchar(19), getdate(), 13) 와 같이 쿼리하면
서버 이전 전에는
31 07 2023 18:18:1 과 같이 결과가 나왔는데요.
지금은 아래와 같이 출력되서 문제네요.
31 Jul 2023 18:18:1
MSSQL 설정 문제일까요?
Comment 3
-
드라케
2023.08.01 14:19
코난님 답변 감사합니다 ^^ 많은 도움이 되었습니다.
-
드라케
2023.08.04 17:44
Format을 지정해서 해결은 했지만 영문(미국) VS 한글(한국) 차이로 인해 발생하는 문제입니다.
혹시 저와 같은 경우에는 아래와 같이 조치하시면 됩니다.
0) https://guide.ncloud-docs.com/docs/database-database-2-3 가이드 수행
1) 명령을 수행한 후 새롭게 생성되는 계정의 default 계정은 한글이 됩니다.
exec sp_configure 'default language', 29
reconfigure with override2) 기존 계정의 경우, 아래 명령어로 수정하시면 됩니다.
USE [master]
GO
ALTER LOGIN [sa] WITH DEFAULT_DATABASE=[master], DEFAULT_LANGUAGE=[한국어]
GO3) 언어 테이블에서 langid 29번의 lcid 값 확인
select * from sys.syslanguages4) xp_msver 의 값을 변경하고자 하는경우
\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQLServer\CurrentVersion의 language 값을 변경한다. 1042 로 변경 (10진수)
안녕하세요. 13번 유럽 스타일을 사용하신 듯 하네요.
이전 버전이 어떤 버전인지 모르겠습니다만, MSSQL 2008 까지는 위와 같이 3자리 월로 출력됩니다.
https://learn.microsoft.com/en-us/sql/t-sql/functions/cast-and-convert-transact-sql?view=sql-server-ver16#date-and-time-styles
select CONVERT(varchar(19), getdate(), 13)
-- SQL2022일 경우 01 Aug 2023 08:42:1
ALTER DATABASE test
SET COMPATIBILITY_LEVEL = 100;
GO
-- 100일 경우 SQL2008 - 01 Aug 2023 08:41:4
2자리 숫자 월로 출력되는 유사한 변환이 없는 듯 합니다.
datepart 로 결과 패턴을 만드시는게 좋을 듯 합니다.