Re: Automatic timezone assigned to inserted value
I have my server fetch and insert data into my sql database. These are the methods for doing that.
The result of show create table
CREATE TABLE `sensor` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`Timestamp` date NOT NULL DEFAULT curdate(),
`Value` double NOT NULL,
`SensorType` int(11) NOT NULL,
`SensorID` int(11) NOT NULL,
PRIMARY KEY (`ID`)
) ENGINE=InnoDB AUTO_INCREMENT=11359 DEFAULT CHARSET=utf8mb4
The command i use to insert rows:
public int insert(double value, int sensorType, int sensorID) throws SQLException {
String insertString = String.format(Locale.US,"INSERT INTO sensor (Value, SensorType, SensorID) VALUES (%f , %d, %d);",
value, sensorType, sensorID);
System.out.println(insertString);
return statement.executeUpdate(insertString);
}
the query to fetch rows:
public List<Data> get(int sensorID) throws SQLException {
String getString = String.format("SELECT * FROM sensor WHERE SensorID = %d", sensorID);
ResultSet resultSet = statement.executeQuery(getString);
List<Data> dataList = new LinkedList<>();
while (resultSet.next()) {
Data newData = new Data();
read(resultSet, newData);
dataList.add(newData);
}
return dataList;
}
While doing this i came across an error message when clicking the 'wrench icon' to the right of my table. When i clicked it i got an error message saying;
"Error Parsing DDL for 'arduinodb'.'sensor'
There was an error while parsing the DDL retrieved from this server. Do you want to view the DDL or cancel processing it?"
When i click "View DDL" it shows the create table query as i posted in the beginning of this message. And it shows an error on line 5 which is "`Timestamp` date NOT NULL DEFAULT curdate()". It says that curdate() is not valid at this position. How do i make that correct because i cant change it in this query as it is just the create table query.