[SQL] 에서 VARCHAR 날짜 시간으로 변환하는 방법
SQL에서 VARCHAR 날짜 시간으로 변환하는 방법
나는 (시간 부분없이) YYYY-MM-DD 형식의 VARCHAR 변수에 날짜 시간 변수에 값을 변환 할 필요가 어디는 SQL Server 2005에서 쿼리 작업입니다. 어떻게 그렇게 할 수 있습니까?
해결법
-
==============================
1.마이크로 소프트 SQL 서버로 :
마이크로 소프트 SQL 서버로 :
-- -- Create test case -- DECLARE @myDateTime DATETIME SET @myDateTime = '2008-05-03' -- -- Convert string -- SELECT LEFT(CONVERT(VARCHAR, @myDateTime, 120), 10)
-
==============================
2.여기에 모든 스타일에 대한 몇 가지 테스트 SQL입니다.
여기에 모든 스타일에 대한 몇 가지 테스트 SQL입니다.
DECLARE @now datetime SET @now = GETDATE() select convert(nvarchar(MAX), @now, 0) as output, 0 as style union select convert(nvarchar(MAX), @now, 1), 1 union select convert(nvarchar(MAX), @now, 2), 2 union select convert(nvarchar(MAX), @now, 3), 3 union select convert(nvarchar(MAX), @now, 4), 4 union select convert(nvarchar(MAX), @now, 5), 5 union select convert(nvarchar(MAX), @now, 6), 6 union select convert(nvarchar(MAX), @now, 7), 7 union select convert(nvarchar(MAX), @now, 8), 8 union select convert(nvarchar(MAX), @now, 9), 9 union select convert(nvarchar(MAX), @now, 10), 10 union select convert(nvarchar(MAX), @now, 11), 11 union select convert(nvarchar(MAX), @now, 12), 12 union select convert(nvarchar(MAX), @now, 13), 13 union select convert(nvarchar(MAX), @now, 14), 14 --15 to 19 not valid union select convert(nvarchar(MAX), @now, 20), 20 union select convert(nvarchar(MAX), @now, 21), 21 union select convert(nvarchar(MAX), @now, 22), 22 union select convert(nvarchar(MAX), @now, 23), 23 union select convert(nvarchar(MAX), @now, 24), 24 union select convert(nvarchar(MAX), @now, 25), 25 --26 to 99 not valid union select convert(nvarchar(MAX), @now, 100), 100 union select convert(nvarchar(MAX), @now, 101), 101 union select convert(nvarchar(MAX), @now, 102), 102 union select convert(nvarchar(MAX), @now, 103), 103 union select convert(nvarchar(MAX), @now, 104), 104 union select convert(nvarchar(MAX), @now, 105), 105 union select convert(nvarchar(MAX), @now, 106), 106 union select convert(nvarchar(MAX), @now, 107), 107 union select convert(nvarchar(MAX), @now, 108), 108 union select convert(nvarchar(MAX), @now, 109), 109 union select convert(nvarchar(MAX), @now, 110), 110 union select convert(nvarchar(MAX), @now, 111), 111 union select convert(nvarchar(MAX), @now, 112), 112 union select convert(nvarchar(MAX), @now, 113), 113 union select convert(nvarchar(MAX), @now, 114), 114 union select convert(nvarchar(MAX), @now, 120), 120 union select convert(nvarchar(MAX), @now, 121), 121 --122 to 125 not valid union select convert(nvarchar(MAX), @now, 126), 126 union select convert(nvarchar(MAX), @now, 127), 127 --128, 129 not valid union select convert(nvarchar(MAX), @now, 130), 130 union select convert(nvarchar(MAX), @now, 131), 131 --132 not valid order BY style
다음은 결과입니다
output style Apr 28 2014 9:31AM 0 04/28/14 1 14.04.28 2 28/04/14 3 28.04.14 4 28-04-14 5 28 Apr 14 6 Apr 28, 14 7 09:31:28 8 Apr 28 2014 9:31:28:580AM 9 04-28-14 10 14/04/28 11 140428 12 28 Apr 2014 09:31:28:580 13 09:31:28:580 14 2014-04-28 09:31:28 20 2014-04-28 09:31:28.580 21 04/28/14 9:31:28 AM 22 2014-04-28 23 09:31:28 24 2014-04-28 09:31:28.580 25 Apr 28 2014 9:31AM 100 04/28/2014 101 2014.04.28 102 28/04/2014 103 28.04.2014 104 28-04-2014 105 28 Apr 2014 106 Apr 28, 2014 107 09:31:28 108 Apr 28 2014 9:31:28:580AM 109 04-28-2014 110 2014/04/28 111 20140428 112 28 Apr 2014 09:31:28:580 113 09:31:28:580 114 2014-04-28 09:31:28 120 2014-04-28 09:31:28.580 121 2014-04-28T09:31:28.580 126 2014-04-28T09:31:28.580 127 28 جمادى الثانية 1435 9:31:28:580AM 130 28/06/1435 9:31:28:580AM 131
만들기 NVARCHAR (최대) 짧은 시간을 자릅니다. 예를 들면 :
select convert(nvarchar(11), GETDATE(), 0) union select convert(nvarchar(max), GETDATE(), 0)
출력 :
May 18 2018 May 18 2018 9:57AM
-
==============================
3.다음을 시도해보십시오
다음을 시도해보십시오
CONVERT(varchar(10), [MyDateTimecolumn], 20)
전체 날짜 시간뿐 아니라 날짜를 수행합니다
CONVERT(varchar(23), [MyDateTimecolumn], 121)
변환 스타일이 페이지를 참조하십시오 :
http://msdn.microsoft.com/en-us/library/ms187928.aspx 또는 SQL 서버 CONVERT () 함수
-
==============================
4.SQL 서버 2012의 새로운 기능, 형식이 있습니다 : http://msdn.microsoft.com/en-us/library/ee634924.aspx
SQL 서버 2012의 새로운 기능, 형식이 있습니다 : http://msdn.microsoft.com/en-us/library/ee634924.aspx
및 사용자 정의 날짜 시간 형식 문자열을 사용할 수 있습니다 http://msdn.microsoft.com/en-us/library/ee634398.aspx
이 페이지는 또한 SQL2008R2 볼 수 있습니다 의미하지만, 그런 경우 내가 테스트 한 편리하지 않습니다.
사용 예제 (호주 날짜) :
FORMAT(VALUE,'dd/MM/yyyy h:mm:ss tt')
-
==============================
5.당신은 DATEPART (DATEPART, VARIABLE)를 사용할 수 있습니다. 예를 들면 :
당신은 DATEPART (DATEPART, VARIABLE)를 사용할 수 있습니다. 예를 들면 :
DECLARE @DAY INT DECLARE @MONTH INT DECLARE @YEAR INT DECLARE @DATE DATETIME @DATE = GETDATE() SELECT @DAY = DATEPART(DAY,@DATE) SELECT @MONTH = DATEPART(MONTH,@DATE) SELECT @YEAR = DATEPART(YEAR,@DATE)
-
==============================
6.캐스트 또는 변환 중 하나 :
캐스트 또는 변환 중 하나 :
CAST 구문 :
CAST ( expression AS data_type [ (length ) ])
CONVERT 구문 :
CONVERT ( data_type [ ( length ) ] , expression [ , style ] )
http://msdn.microsoft.com/en-us/library/ms187928.aspx
실제로 특정 형식을 요구하기 때문에 :
REPLACE(CONVERT(varchar(10), Date, 102), '.', '-')
-
==============================
7.-이 당신에게 형식으로 0과 시간을 제공 'YYYY-MM-DD 00 : 00 : 00.000'
-이 당신에게 형식으로 0과 시간을 제공 'YYYY-MM-DD 00 : 00 : 00.000'
SELECT CAST( CONVERT(VARCHAR, GETDATE(), 101) AS DATETIME) ;
-
==============================
8.마이크로 소프트 SQL 서버로 :
마이크로 소프트 SQL 서버로 :
CONVERT에 대한 구문을 사용합니다 :
CONVERT ( data_type [ ( length ) ] , expression [ , style ] )
예:
SELECT CONVERT(varchar,d.dateValue,1-9)
- 캐스트 및 변환 (Transact-SQL)를 참조하십시오 MSDN : 스타일을 위해 당신은 여기에 더 많은 정보를 찾을 수 있습니다.
-
==============================
9.시험:
시험:
select replace(convert(varchar, getdate(), 111),'/','-');
더 많은 MS SQL 팁에
-
==============================
10.다음을 시도해보십시오
다음을 시도해보십시오
CONVERT(VARCHAR(10),GetDate(),102)
그럼 당신은 교체해야 할 것입니다 "." 와 "-".
여기에 도움이되는 사이트입니다 http://www.mssqltips.com/tip.asp?tip=1145
-
==============================
11.
declare @dt datetime set @dt = getdate() select convert(char(10),@dt,120)
특정 문자열 형식을 원하는 나는 문자 (10)의 데이터 길이를 해결했습니다.
-
==============================
12.영업 이익은 날짜 형식을 언급했다. 나를 위해, 시간 부분은 방법으로 가져옵니다. 나는 포맷하기 전에 (지금까지 날짜를 캐스트) 시간 부분을 제거하는 비트 청소기 생각합니다.
영업 이익은 날짜 형식을 언급했다. 나를 위해, 시간 부분은 방법으로 가져옵니다. 나는 포맷하기 전에 (지금까지 날짜를 캐스트) 시간 부분을 제거하는 비트 청소기 생각합니다.
convert( varchar(10), convert( date, @yourDate ) , 111 )
-
==============================
13.이것은 내가 그것을 할 방법은 다음과 같습니다 CONVERT를 (NVARCHAR (10), DATE1, 103))
이것은 내가 그것을 할 방법은 다음과 같습니다 CONVERT를 (NVARCHAR (10), DATE1, 103))
-
==============================
14.당신은 여러 형식으로 날짜를 변환 할 수 있으며, syntaxe 사용하기 간단하다 :
당신은 여러 형식으로 날짜를 변환 할 수 있으며, syntaxe 사용하기 간단하다 :
CONVERT('TheTypeYouWant', 'TheDateToConvert', 'TheCodeForFormating' * ) CONVERT(NVARCHAR(10), DATE_OF_DAY, 103) => 15/09/2016
귀하의 경우에, 난 그냥 같이 변환 NVARCHAR (10)에 의해 크기를 제한했습니다 :
CONVERT(NVARCHAR(10), MY_DATE_TIME, 120) => 2016-09-15
http://www.w3schools.com/sql/func_convert.asp : 더 많은 참조
(날짜는 날짜 시간 인 경우) 또 다른 해결책은 간단 CAST입니다 :
CAST(MY_DATE_TIME as DATE) => 2016-09-15
-
==============================
15.이 SQL을 사용해보십시오 :
이 SQL을 사용해보십시오 :
select REPLACE(CONVERT(VARCHAR(24),GETDATE(),103),'/','_') + '_'+ REPLACE(CONVERT(VARCHAR(24),GETDATE(),114),':','_')
-
==============================
16.SQL Server의 경우 2008+ 당신은 함께 변환 포맷을 사용할 수 있습니다.
SQL Server의 경우 2008+ 당신은 함께 변환 포맷을 사용할 수 있습니다.
예를 들어, 유럽 스타일 (예를 들어, 독일) 타임 스탬프 :
CONVERT(VARCHAR, FORMAT(GETDATE(), 'dd.MM.yyyy HH:mm:ss', 'de-DE'))
-
==============================
17.당신은 어떤 데이터베이스 말하지만, 여기에 MySQL과 연동 (자동으로 수행해야하며, VARCHAR 타입 변환) 타임 스탬프에서 날짜를 얻을 수있는 가장 쉬운 방법입니다하지 않았다 :
당신은 어떤 데이터베이스 말하지만, 여기에 MySQL과 연동 (자동으로 수행해야하며, VARCHAR 타입 변환) 타임 스탬프에서 날짜를 얻을 수있는 가장 쉬운 방법입니다하지 않았다 :
mysql> select date(now()); +-------------+ | date(now()) | +-------------+ | 2008-09-16 | +-------------+ 1 row in set (0.00 sec)
-
==============================
18.짧고 간단한 방법은 다음과 같습니다
짧고 간단한 방법은 다음과 같습니다
DECLARE @now AS DATETIME = GETDATE() SELECT CONVERT(VARCHAR, @now, 23)
-
==============================
19.
DECLARE @DateTime DATETIME SET @DateTime = '2018-11-23 10:03:23' SELECT CONVERT(VARCHAR(100),@DateTime,121 )
-
==============================
20.
CONVERT(VARCHAR, GETDATE(), 23)
-
==============================
21.함수를 쓰기
함수를 쓰기
CREATE FUNCTION dbo.TO_SAP_DATETIME(@input datetime) RETURNS VARCHAR(14) AS BEGIN DECLARE @ret VARCHAR(14) SET @ret = COALESCE(SUBSTRING(REPLACE(REPLACE(REPLACE(CONVERT(VARCHAR(26), @input, 25),'-',''),' ',''),':',''),1,14),'00000000000000'); RETURN @ret END
-
==============================
22.당신은 기본 날짜 시간 데이터 형식을 가지고 있기 때문에 나는 C #을 /. NET을 가정하고 어떤 언어하지만 말을하지 않습니다. 이 경우 바로 ToString 메서드를 사용하여 변환 서식 지시자 등의 사용 :
당신은 기본 날짜 시간 데이터 형식을 가지고 있기 때문에 나는 C #을 /. NET을 가정하고 어떤 언어하지만 말을하지 않습니다. 이 경우 바로 ToString 메서드를 사용하여 변환 서식 지시자 등의 사용 :
DateTime d = DateTime.Today; string result = d.ToString("yyyy-MM-dd");
그러나, 나는 데이터베이스 쿼리에서 이것을 사용하거나 SQL 문에 연결된에주의한다. 데이터베이스는 사용하는 특정 포맷 문자열을 필요로한다. 당신은 시간의 부분을 제로화하고 당신이 달성하려고하는 것입니다 경우 SQL 매개 변수로 날짜 시간을 사용하는 것이 더 낫다.
from https://stackoverflow.com/questions/74385/how-to-convert-datetime-to-varchar by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 변수를 할당 할 때 SELECT 대 SET? (0) | 2020.03.18 |
---|---|
[SQL] IN 값에 대한 반환 기본 결과에 관계없이 (0) | 2020.03.18 |
[SQL] SQL 서버에서 레코드를 삭제 한 후 다시 설정 신원 씨 (0) | 2020.03.18 |
[SQL] 변환 UTF-8 SQL 데이터베이스에 문자열 클래식 ASP (0) | 2020.03.18 |
[SQL] SQL 분할 쉼표로 구분 행 [중복] (0) | 2020.03.18 |