mysql - 使用合适的日期格式创建 MySQL 表 dd/MMM/yyyy:hh:mm:ss Z
问题描述
所以我正在尝试使用 JDBC 创建一个 mysql 表。在此表中,我想要一个包含以下时间戳的列:
01/Nov./2018:12:01:43 +0100 这是格式:dd/MMM/yyyy:hh:mm:ss Z
//--------------------- 编辑现在这个 SQL 语句成功地创建了我的表:
"CREATE TABLE IF NOT EXISTS `FilteredLogs` ("
+ "id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,"
+ "`TIME` DATETIME,"
+ "`IP` varchar(20) NOT NULL,"
+ "`USER` varchar(1000) NOT NULL,"
+ "`URI` varchar(1000) NOT NULL,"
+ "`STATUS` INT NOT NULL)";
现在我尝试将数据放入表中:
PreparedStatement input = con.prepareStatement("insert into "+tableName+"(TIME, IP, USER, URI, STATUS) values(?,?,?,?,?);");
input.setDate(1, java.sql.Date.valueOf(formattime));
input.setString(2, iplog);
input.setString(3, userlog);
input.setString(4, urilog);
input.setInt(5, statuslog);
input.execute();
这会引发 IllegalArgumentException,其中“formattime”是一个字符串,其值为:“01/Nov/2018:00:00:17 +0100”
解决方案
您的TIME
列日期类型将DATETIME
不只是date
在数据呈现时使用格式
"CREATE TABLE IF NOT EXISTS `FilteredLogs` ("
+ "id INT NOT NULL PRIMARY KEY AUTO_INCREMENT, "
+ "`TIME` DATETIME "
+ "`IP` varchar(20) NOT NULL, "
+ "`USER` varchar(1000) NOT NULL, "
+ "`URI` varchar(1000) NOT NULL, "
+ "`STATUS` INT NOT NULL"
推荐阅读
- ios - automaticMergesChangesFromParent 不做任何事情
- javascript - 如何从我自己的谷歌地图中删除标记
- python - 在 Pycharm 中导入 openpyxl 失败
- dart - 如何切换 sliver 应用栏以激活或停用自身并充当普通应用栏?
- python - 来自两个列表的数字对
- matlab - MATLAB - 指定了所有路径,但它总是打开到最后一条路径?
- php - PHP 阻止 URL 和域但允许电子邮件地址
- javascript - 如何使用 useState 和表单正确更新状态?
- python - 通过 tee 将标准输出重定向到文件时隐藏的信号处理程序的日志
- python - 如何更改函数中全局变量的值?