2017-01-27 1 views
-1

나는 2017 년 5 월 1 일 12:15:00 PM을 그렇게 읽도록 변환하고 싶습니다. 1493612100000mysql 또는 java를 사용하여 날짜/시간 형식의 숫자/정수 형식을 얻는 방법은 무엇입니까?

그런 다음 문자열로 변환하십시오. Java와 MySQL에서 가능하며 어떻게 할 수 있습니까?

+1

'Date' 또는'LocalDateTime' 객체에'String'을 구문 분석하고, 그것으로부터 "millis"값을 얻습니다. 문제는 시간대 컨텍스트가 손실 될 수 있지만 형식에 TZ가 없기 때문에 문제 일 가능성이 높습니다. P – MadProgrammer

+1

"2017 년 5 월 1 일 12:15:00 PM"이란 무엇입니까? 이것은'String'입니까? '날짜'? 'LocalDateTime'? 데이터베이스 열입니까? 너 뭐하려고? – shmosel

+2

당신은 두 가지 기본적인 문제가있는 것처럼 보입니다. 날짜를 유효한'Date' 또는'LocalDateTime' 객체로 변환합니다. 많은 예제가 있습니다. 다시 말하면, 그 객체의 밀리 세컨드 값을 얻는다. 문제를 해결하기 위해 어떤 노력을 기울이지 않으면 다른 사람들도 똑같이하도록 기대하지 마십시오. 뭔가를 시도하고 붙어 있다면, 우리는 여기에 도움이 될 것입니다 – MadProgrammer

답변

1

두 단계로 MySQL에서이를 수행 할 수 있습니다. 먼저 STR_TO_DATE()을 사용하여 문자열 시간 소인을 datetime으로 변환 한 다음 해당 날짜를 UNIX_TIMESTAMP()을 사용하여 기점부터 밀리 초로 변환하십시오.

SELECT 1000*UNIX_TIMESTAMP(STR_TO_DATE(col, '%M %e, %Y %h:%i:%s %p')) AS millis 
FROM yourTable 

샘플 데이터가 참조하는 기원 이후로 밀리 초가 반환됩니다. 여기

데모 :

SQLFiddle

+0

나는 이것을 시도하고 모든 (NULL) 데이터를 반환합니다 –

+0

MyTable에서 SELECT UNIX_TIMESTAMP (Start_Date)를 사용하여 해결했습니다 ... 정확히 질문하지 않았지만 숫자 값 –

0

당신이 1493612100000을 무엇을 의미? 비교할 수있는 정수인 경우 다음 솔루션을 사용할 수 있습니다.

SELECT UNIX_TIMESTAMP(`table`.`date`) from `table` WHERE ...; 

날짜 사용에 문자열을 변환하려면 : 함께

STR_TO_DATE('May 1, 2017 12:15:00 PM', '%M %d, %Y %h:%i:%s%p') 

:

MySQL의는 다음과 같이 사용될 수있는 기능 UNIX_TIMESTAMP이

SELECT UNIX_TIMESTAMP(STR_TO_DATE(...)) 
+0

* "나는 5 월 1 일을 변환하고 싶습니다. 2017 12:15:00 PM 그래서 읽습니다 ... "* -'UNIX_TIMESTAMP'가 그렇게합니까? – MadProgrammer

+0

이것은 내 대답의 사본이며 형식 마스크가 잘못되었습니다. 초 후에 'AM/PM'이라는 공백이 있습니다. –

+0

귀하의 의견에 언급 된 답변의 복사본이 마스크에 차이가 없습니다. 그것은 첫 번째입니다. 그리고 두 번째 : 제 대답은 다른 기능을 매개 변수로 사용한 것입니다. – oklas

관련 문제