Запрос дает различный вывод на разных ОС - PullRequest
0 голосов
/ 01 июня 2011

Я написал следующую функцию на Java.Эта функция возвращает текущую метку времени, выполняя запрос.Функциональный код выглядит следующим образом:

private  String getTimeStamp(){
    String timeStamp=null;      
    try{
        String strQuery="select current_timestamp";
        PreparedStatement pmtQuery=con.prepareStatement(strQuery);
        ResultSet rsQuery=pmtQuery.executeQuery();
        rsQuery.next();
        timeStamp=rsQuery.getString(1);
        JOptionPane.showMessageDialog(null, "Value of timeStamp : "+timeStamp);
    }catch(SQLException e){
        System.out.println("SQL Exception in the getTimeStamp()");
    }       
    return timeStamp;
} 

Когда я использую эту функцию на окнах, она дает правильную форму и работает нормально.Ex.

Если выполнить указанную выше функцию в вдовах, она дает метку времени, например, ex.2011-06-01 17: 05: 03

но когда я выполняю эту функцию в Debina linux, она выдает временную метку как 2011-06-01 17: 05: 03.0

Добавляет .0 котметка времени

Пожалуйста, помогите мне в этой проблеме

1.why such different output comes on different system?

2.How to avoid this problem?

3.How to solve this problem?

Я использую следующие конфигурации

windows

windows 7, база данных MySQL, Java 6

Linux

Debian linux, база данных Mysql, Java 6

Спасибо!

Ответы [ 4 ]

2 голосов
/ 01 июня 2011

Используйте это

SELECT DATE_FORMAT(CURDATE(), '%d/%m/%Y %hh%mm%ss')

Примечание:

Интересно, почему вы запрашиваете текущую дату

1 голос
/ 01 июня 2011

Возможно, проблема в разных (по умолчанию) настройках драйверов JDBC.

Я бы предпочел получить метку времени как Timestamp (подкласс java.util.Date):

import java.sql.Timestamp;
...
Timestamp timeStamp;
...
timeStamp = rsQuery.getTimestamp(1); 

Таким образом, вы можете контролировать, как отформатировать его в коде Java как / еслинеобходимо (например, используя SimpleDateFormat или String.format).

0 голосов
/ 01 июня 2011

Вы также можете использовать

SimpleDateFormat

Это простой форматер даты.

0 голосов
/ 01 июня 2011

Это не переносимо, но вы можете использовать функцию DATE_FORMAT:

SELECT DATE_FORMAT(CURRENT_TIMESTAMP, '%d/%m/%Y %h:%i:%s');

Документация здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...