DateTime vs TimeStamp
今天突发奇想,数据库的时间到底是如何插入的?
SimPleDateFormat的parse和format方法! (老是忘
一个用来date转string,一个是string转date
2.1、获取系统当前时间
Date d = new Date();
2.2、日期格式化:Date --> String
yyyy-MM-dd HH:mm:ss SSS
SimpleDateFormat sdf = new SimpleDate("yyyy-MM-dd HH:mm:ss SSS");
String s = sdf.format(new Date());
2.3、String --> Date
SimpleDateFormat sdf = new SimpleDate("yyyy-MM-dd HH:mm:ss");
Date d = sdf.parse("2008-08-08 08:08:08");
2.4、获取毫秒数
long begin = System.currentTimeMillis();
Date d = new Date(begin - 1000 * 60 * 60 * 24);
一、通常我们都会把mysql的日期字段的数据类型设为 DATATIME ,
那么我们只需要在java中new一个Date类型的对象 调用实体类的方法即可
(例如fortune中 往中间表插入)
二、在fortune项目中 往g_sales_order中 不用自己插入时间 CURRENT_TIMESTAMP
三、瑞吉外卖中 ThreadLocal
2023/6/24
一、Mysql 关于 int(1) 和 int(11)
先说结论: 在没有为mysql 字段设置零填充 zerofill属性的时候,int(1)和int(11)没有任何区别
字段在设置zerofill属性后,int(4)显示0003,而int(11)显示00000000003 (int类型最长支持11位)
也就是说,int(4),这个4不是指的int整型的长度,而是指设置zerofill属性后自动在前头填充0的位数。(显示长度)
如果是 默认int (默认是有符号),那你就int(11) 好了;(
mysql 创建int 类型,默认就是有符号。 也就是说范围在 -2147483648 ~ 2147483647 。
2147483647 长度 10 -2147483648 长度 11 )
如果是 无符号 unsigned int ,那你就int (10) 好了。(无符号的int 范围在 0 ~ 4294967295
长度 10 ;)
参考:
https://blog.csdn.net/qq_35387940/article/details/123325009
二、Java中的char和String
引用我自己https://blog.csdn.net/weiyuhaodashabi/article/details/129235805
三、 char和varchar
在关系数据库中,CHAR和VARCHAR是两种常见的数据类型,用于存储字符串。它们之间的主要区别在于存储方式和存储长度。
定长和变长
char 表示定长,长度固定,varchar表示变长,即长度可变。char如果插入的长度小于定义长度时,则用空格填充;varchar小于定义长度时,还是按实际长度存储,插入多长就存多长。
存储的容量不同
对 char 来说,最多能存放的字符个数 255,和编码无关。
而 varchar 呢,最多能存放 65532 个字符。varchar的最大有效长度由最大行大小和使用的字符集确定。整体最大长度是 65,532字节。
例子:
CREATE TABLE example (
char_column CHAR(10),
varchar_column VARCHAR(10)
);
INSERT INTO example (char_column, varchar_column) VALUES ('Hello', 'Hello');
SELECT char_length(char_column) AS char_length, char_length(varchar_column) AS varchar_length FROM example;