对于想了解无法从java中的mysqlddbb获取正确的时间值的读者,本文将提供新的信息,我们将详细介绍无法从载入javaruntimeenvironment,并且为您提供关于ISO8601MySQL
对于想了解无法从java中的mysql ddbb获取正确的时间值的读者,本文将提供新的信息,我们将详细介绍无法从载入java runtime environment,并且为您提供关于ISO 8601 MySQL数据库时间戳:MySQL日期时间值不正确、java – Spring JdbcTemplate无法从MySQL获取插入ID、java – 获取正确的界面粒度级别、Java 向MySql 插入日期和时间正确的姿势的有价值信息。
本文目录一览:- 无法从java中的mysql ddbb获取正确的时间值(无法从载入java runtime environment)
- ISO 8601 MySQL数据库时间戳:MySQL日期时间值不正确
- java – Spring JdbcTemplate无法从MySQL获取插入ID
- java – 获取正确的界面粒度级别
- Java 向MySql 插入日期和时间正确的姿势
无法从java中的mysql ddbb获取正确的时间值(无法从载入java runtime environment)
避免遗留的日期时间类
切勿使用 java.sql.Time
。该类在设计上存在缺陷,是多年前被现代 java.time 类取代的糟糕日期时间类的一部分。
随着 JSR 310 的采用,Sun、Oracle 和 JCP 社区放弃了遗留的日期时间类。您也应该如此。
LocalTime
相反,使用 java.time.LocalTime
从仅包含日期时间的数据库列中检索数据,没有日期,没有时区或与 UTC 的偏移量,这种数据类型类似于 SQL 标准 {{ 1}} 类型。在 MySQL 8 中,这将是 TIME
类型。
TIME
使用此类代码不会有任何时区问题。存储的值是检索到的值。不会注入任何介入的默认时区。
JDBC 4.2 规范要求所有兼容的驱动程序都支持 LocalTime lt = myResultSet.getObject( …,LocalTime.class ) ;
。
JPA 和 Hibernate 等库已更新以支持 java.time 类。
ISO 8601 MySQL数据库时间戳:MySQL日期时间值不正确
错误日志:
{ [Error: Incorrect datetime value: ‘2012-08-24T17:29:11.683Z’ for
column ‘robot _refreshed_at’ at row 1] number: 1292,sqlStateMarker:
‘#’,sqlState: ‘22007’,message: ‘Incorrect datetime value:
\’2012-08-24T17:29:11.683Z\’ for column \’ robot_refreshed_at\’ at row
1′,sql: ‘INSERT INTO users
(id,name,count_moments,count_likes,count_followers,rob
ot_refreshed_at,robot_count_followers) VALUES
(\’1834084\’,\’NNNyingzi\’,\’5\’,\
‘0\’,\’0\’,\’2012-08-24T17:29:11.683Z\’,\’0\’)’,setMaxListeners:
[Function],emit: [Function],addListener: [Function],on: [Function],
once: [Function],removeListener: [Function],removeAllListeners:
[Function],listeners: [Function] }
我在Node.js中使用这段代码
@H_301_25@ if s instanceof Date return s.toISOString()
并在数据库中更新它们.
sql插入表达式如下:
@H_301_25@ INSERT INTO users (id,rob ot_refreshed_at,robot_count_followers) VALUES (\'1834084\',\'NNNyingzi\',\'5\',\ '0\',\'0\',\'2012-08-24T17:29:11.683Z\',\'0\')
我做错了吗?我只是从服务器中的表中使用PHPMyAdmin复制了一个表.
非常感谢.
MysqL recognizes 07001 and 07002 values in these formats:
As a string in either @H_301_25@'YYYY-MM-DD HH:MM:SS' or @H_301_25@'YY-MM-DD HH:MM:SS' format. A “relaxed” Syntax is permitted here,too: Any punctuation character may be used as the delimiter between date parts or time parts. For example,@H_301_25@'2012-12-31 11:30:45',@H_301_25@'2012^12^31 11+30+45',@H_301_25@'2012/12/31 11*30*45',and @H_301_25@'2012@12@31 11^30^45' are equivalent.
As a string with no delimiters in either @H_301_25@'YYYYMMDDHHMMSS' or @H_301_25@'YYMMDDHHMMSS' format,provided that the string makes sense as a date. For example,@H_301_25@'20070523091528' and @H_301_25@'070523091528' are interpreted as @H_301_25@'2007-05-23 09:15:28',but @H_301_25@'071122129015' is illegal (it has a nonsensical minute part) and becomes @H_301_25@'0000-00-00 00:00:00'.
As a number in either @H_301_25@YYYYMMDDHHMMSS or @H_301_25@YYMMDDHHMMSS format,provided that the number makes sense as a date. For example,@H_301_25@19830905132800 and @H_301_25@830905132800 are interpreted as @H_301_25@'1983-09-05 13:28:00'.
A 07001 or 07002 value can include a trailing fractional seconds part in up to microseconds (6 digits) precision. Although this fractional part is recognized,it is discarded from values stored into 07001 or 07002 columns. For information about fractional seconds support in MysqL,see 07007.
您的日期字体’2012-08-24T17:29:11.683Z’不适合任何这些格式;建议你 –
>使用Node.js Date对象的toLocaleFormat()
方法(确保MysqL连接的时区与Node.js的语言环境的时区匹配):
@H_301_25@ if s instanceof Date return s.toLocaleFormat("%Y-%m-%d %H:%M:%s")
>使用Node.js Date对象的valueOf()
方法获取自UNIX纪元以来的时间值(以毫秒为单位),除以1000(从UNIX纪元开始获得秒数)并通过MysqL的FROM_UNIXTIME()
函数.
java – Spring JdbcTemplate无法从MySQL获取插入ID
我试图在MySQL表中插入一行并获取它的插入ID.我知道MysqL的last_insert_id()函数,我似乎无法让它工作.目前,我正在尝试使用注释为事务的函数,我只返回0.我使用的是Spring 3.1.
@Transactional (propagation = Propagation.required,rollbackFor = Exception.class)
private long insertTransactionRecord
(
int custID,int porID,String date,short crvID
) {
m_template.update ("INSERT INTO " +
" transaction " +
"( " +
" por_id," +
" cust_id," +
" trans_date," +
" crv_id " +
") " +
"VALUES " +
"( " +
" ?," +
" ?," +
" ? " +
")",new Object[] {
porID,custID,date,crvID
});
return m_template.queryForLong ("SELECT " +
" last_insert_id() " +
"FROM " +
" transaction " +
"LIMIT 1");
}
public int createCompany(Company company) throws sqlException {
jdbcTemplate.update(
"INSERT INTO company (name) VALUES (?)",company.getName()
);
return jdbcTemplate.queryForInt( "select last_insert_id()" );
}
如果你注意到那里没有FROM
java – 获取正确的界面粒度级别
正因为如此,我正在使用Java,但我认为这个问题与支持类似接口概念的任何语言都是相关的.
我注意到,往往有一个选择:
>使用各种方法制作大型界面
>制作多个接口,每个接口包含一整套方法的子集(一个具体的类可能需要实现这些接口的几个或全部)
每种方法的优缺点是什么?
解决方法
我建议将界面拆分出来,帮助可读性,而不用进一步.如果你有一个类正在实现10个接口,那么这些接口需要被组合成一个接口,或者类可能需要承担很多的责任,而且它真的需要两个或更多的类.
Java 向MySql 插入日期和时间正确的姿势
Mysql和Java之间时间对应关系表:
date java.sql.Date
Datetime java.sql.Timestamp
Timestamp java.sql.Timestamp
Time java.sql.Time
Year java.sql.Date
插入日期的方式:
java.util.Date类型的时间直接插入。mysql中的字段类型也是Date
这个时候如果插入数据是只有日期的。
插入日期和时间的方式:
Mysql中设置字段的类型为DateTime 或者 Timestamp。
Java中采用
new Timestamp(new Date().getTime())
进行插入,这个时候,mysql中保存的是日期和时间的组合。
关于无法从java中的mysql ddbb获取正确的时间值和无法从载入java runtime environment的介绍已经告一段落,感谢您的耐心阅读,如果想了解更多关于ISO 8601 MySQL数据库时间戳:MySQL日期时间值不正确、java – Spring JdbcTemplate无法从MySQL获取插入ID、java – 获取正确的界面粒度级别、Java 向MySql 插入日期和时间正确的姿势的相关信息,请在本站寻找。
本文标签: