2017-01-27 4 views
-1

Я хотел был бы конвертировать 1 мая 2017 12:15:00, чтобы он читал так 1493612100000Как получить числовой/целочисленный формат даты с использованием mysql или java?

Затем преобразуйте его в строку. Возможно ли это в Java и MySQL и как это сделать?

+1

Разберите 'String' в объект' Date' или 'LocalDateTime', получите значение« миллис »от него. Проблема в том, что вы потеряете контекст часовой пояс, но поскольку в вашем формате нет TZ, это, вероятно, уже проблема: P – MadProgrammer

+1

Что такое «1 мая 2017 года 12:15:00»? Это «String»? 'Date'? 'LocalDateTime'? Это столбец базы данных? Что ты пытаешься сделать? – shmosel

+2

У вас возникли две основные проблемы: преобразование даты в действительный объект 'Date' или' LocalDateTime', множество примеров этого; получение миллисекундного значения от указанного объекта, опять же, множество примеров этого. Если вы не собираетесь предпринимать какие-либо усилия для решения проблемы, не ожидайте, что другие будут делать то же самое. Если вы попробуете что-нибудь и застрянете, мы здесь, чтобы помочь – MadProgrammer

ответ

1

Вы можете сделать это в MySQL за два шага. Сначала преобразуйте временную метку строки в datetime с использованием STR_TO_DATE(), а затем конвертируйте эту дату в миллисекунды с эпохи, используя 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

Я решил его использовать с помощью SELECT UNIX_TIMESTAMP (Start_Date) из MyTable ... но не точно численное значение, как показано в моем вопросе –

0

Что вы имеете в виду 1493612100000? Если это только сопоставимое целое число, вы можете использовать следующее решение: .

Mysql имеют функцию UNIX_TIMESTAMP она может быть использована, как это:

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') 

Вместе:

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

* «Я хотел был бы преобразовать 1 мая, 2017 12:15:00 PM, чтобы он читал ... »* - делает ли это UNIX_TIMESTAMP? – MadProgrammer

+0

Это копия моего ответа, а маска формата неверна. Существует пробел после секунд и 'AM/PM'. –

+0

Нет копии вашего ответа, как указано в вашем комментарии, оно имеет разницу в маске. Это первое. И второе: мой ответ показывает другую функцию как ее имя как ее параметры. – oklas