mysql如何设置date字段里边,自动获取当前日期的。

作者&投稿:钭黄 (若有异议请与网页底部的电邮联系)
mysql分别获取已有数据date中的年月日~

以每24小时作为一份时间(而非自然日),根据用户的配置有两种工作模式:带状模式中,用户仅定义开始日期时,从开始日期(含)开始,每份时间1个分片地无限增加下去;环状模式中,用户定义了开始日期和结束日期时,以结束日期(含)和开始日期(含)之间的时间份数作为分片总数(分片数量固定),以类似取模的方式路由到这些分片里。

1. DBLE 启动时,读取用户在 rule.xml 配置的 sBeginDate 来确定起始时间
2. 读取用户在 rule.xml 配置的 sPartionDay 来确定每个 MySQL 分片承载多少天内的数据
3. 读取用户在 rule.xml 配置的 dateFormat 来确定分片索引的日期格式
4. 在 DBLE 的运行过程中,用户访问使用这个算法的表时,WHERE 子句中的分片索引值(字符串),会被提取出来尝试转换成 Java 内部的时间类型
5. 然后求分片索引值与起始时间的差,除以 MySQL 分片承载的天数,确定所属分片

1. DBLE 启动时,读取用户在 rule.xml 配置的起始时间 sBeginDate、终止时间 sEndDate 和每个 MySQL 分片承载多少天数据 sPartionDay
2. 根据用户设置,建立起以 sBeginDate 开始,每 sPartionDay 天一个分片,直到 sEndDate 为止的一个环,把分片串联串联起来
3. 读取用户在 rule.xml 配置的 defaultNode
4. 在 DBLE 的运行过程中,用户访问使用这个算法的表时,WHERE 子句中的分片索引值(字符串),会被提取出来尝试转换成 Java 内部的日期类型
5. 然后求分片索引值与起始日期的差:如果分片索引值不早于 sBeginDate(哪怕晚于 sEndDate),就以 MySQL 分片承载的天数为模数,对分片索引值求模得到所属分片;如果分片索引值早于 sBeginDate,就会被放到 defaultNode 分片上

与MyCat的类似分片算法对比


中间件
DBLE
MyCat

分片算法种类 date 分区算法 按日期(天)分片
两种中间件的取模范围分片算法使用上无差别

开发注意点
【分片索引】1. 必须是字符串,而且 java.text.SimpleDateFormat 能基于用户指定的 dateFormat 来转换成 java.util.Date
【分片索引】2. 提供带状模式和环状模式两种模式
【分片索引】3. 带状模式以 sBeginDate(含)起,以 86400000 毫秒(24 小时整)为一份,每 sPartionDay 份为一个分片,理论上分片数量可以无限增长,但是出现 sBeginDate 之前的数据而且没有设定 defaultNode 的话,会路由失败(如果有 defaultNode,则路由至 defaultNode)
【分片索引】4. 环状模式以 86400000 毫秒(24 小时整)为一份,每 sPartionDay 份为一个分片,以 sBeginDate(含)到 sEndDate(含)的时间长度除以单个分片长度得到恒定的分片数量,但是出现 sBeginDate 之前的数据而且没有设定 defaultNode 的话,会路由失败(如果有 defaultNode,则路由至 defaultNode)
【分片索引】5. 无论哪种模式,分片索引字段的格式化字符串 dateFormat 由用户指定
【分片索引】6. 无论哪种模式,划分不是以日历时间为准,无法对应自然月和自然年,且会受闰秒问题影响

运维注意点
【扩容】1. 带状模式中,随着 sBeginDate 之后的数据出现,分片数量的增加无需再平衡
【扩容】2. 带状模式没有自动增添分片的能力,需要运维手工提前增加分片;如果路由策略计算出的分片并不存在时,会导致失败
【扩容】3. 环状模式中,如果新旧 [sBeginDate,sEndDate] 之间有重叠,需要进行部分数据迁移;如果新旧 [sBeginDate,sEndDate] 之间没有重叠,需要数据再平衡

配置注意点
【配置项】1. 在 rule.xml 中,可配置项为 、 、 、 和
【配置项】2.在 rule.xml 中配置 ,符合 java.text.SimpleDateFormat 规范的字符串,用于告知 DBLE 如何解析sBeginDate和sEndDate

【配置项】3.在 rule.xml 中配置 ,必须是符合 dateFormat 的日期字符串

【配置项】4.在 rule.xml 中配置 ,必须是符合 dateFormat 的日期字符串;配置了该项使用的是环状模式,若没有配置该项则使用的是带状模式

【配置项】5.在 rule.xml 中配置 ,非负整数,该分片策略以 86400000 毫秒(24 小时整)作为一份,而 sPartionDay 告诉 DBLE 把每多少份放在同一个分片

【配置项】6.在 rule.xml 中配置 标签,非必须配置项,不配置该项的话,用户的分片索引值没落在 mapFile 定义

修改日期类型为timestamp 并允许空,如下:
CREATE TABLE `test` (`aaaa` varchar(50) NOT NULL,`createday` timestamp NULL DEFAULT
CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP) ENGINE=InnoDB DEFAULT
CHARSET=utf8;
如果是在navicat下操作的话,设置字段的类型为timestamp,默认值写上CURRENT_TIMESTAMP

扩展资料

mysql中的时间类型:
mysql中我们用的时间类型有DATE DATETIME TIME TIMESTAMP四种:
1、DATE只表示日期,检索以YYYY-MM-DD的格式显示,范围是1000-01-01到9999-12-31。
2、TIME只表示时间,检索以HH:MM:SS格式显示,范围是00:00:00到23:59:59。
3、DATETIME表示了日期和时间,检索以YYYY-MM-DD HH:MM:SS格式显示。
4、TIMESTAMP和DATETIME表示格式一样两者的不同点如下:
当使用timestamp的时候,数据有更新的时候这个字段自动更新为当前时间,所以可以作为lastmodify使用,这个变化是默认设置,如果想使时间不更新可以设置DEFAULT CURRENT_TIMESTAMP
timestamp的范围不能早于1970或者晚于2037,超过这个时间范围的话为0。
timestamp存储的时候是转为UTC存储的,获取的时候根据客户端所在时区进行展示。
timestamp占4个字节,datetime占8个字节。

timestamp这种类型就是包含日期和时间的而且根据时区来显示的,将这列的类型设置为date时你看看这一列有没有允许空值,date是有效的数据类型报错的话一般都是没有允许空值后面还default null,你可以用curdate()去返回当前日期。


MySQL数据库中如何设置字符集?
在[mysqld]部分中添加以下行:character-set-server=字符集名称 其中,字符集名称是您选择的字符集的名称。例如,如果您想使用UTF-8字符集,可以添加以下行:character-set-server=utf8 对于数据库级字符集,可以在创建数据库时指定字符集。例如,如果您想将数据库的字符集设置为UTF-8,可以执行以下SQL...

如何设置合理的mysql的参数?
\\x0d\\x0a\\x0d\\x0atable_open_cache = 128\\x0d\\x0a# MySQL每打开一个表,都会读入一些数据到table_open_cache缓存中,当MySQL在这个缓存中找不到相应信息时,才会去磁盘上读取。默认值64\\x0d\\x0a# 假定系统有200个并发连接,则需将此参数设置为200*N(N为每个连接所需的文件描述符数目);\\x0d\\x0a...

如何修改mysqld
1.删除原Mysql的服务,在Windows命令行中执行 sc delete mysql 2.重新安装Mysql服务 在命令行中cd到Mysql的bin目录下执行:Mysql\\bin>mysqld-nt.exe --install --defaults-file="my.ini文件路径"如:Mysql\\bin>mysqld-nt.exe --install MySQL41 --defaults-file="D:\\Mysql\\my.ini“这样新安装...

MySQL数据库如何实现双机热备的配置.doc
在mysqld配置项中加入下面配置:server-id=1log-bin#设置需要记录log 可以设置log-bin=c:mysqlbakmysqllog设置日志文件的目录,#其中mysqllog是日志文件的名称,mysql将建立不同扩展名,文件名为mysqllog的几个日志文件。binlog-do-db=backup #指定需要日志的数据库 重起数据库服务。用show master status 命令看日志...

mysql安装的时候,有一步是mysql_install_db --user=mysql,新手请教
1、首先连接到mysql数据库,查看默认所有数据库信息,如下图所示。2、因为user表存在于mysql数据库中,可以通过use命令来切换数据库。3、切换数据库之后通过show命令可以查看数据库中所有的数据表,在最后可以看到user数据表。4、通过desc命令可以查看user表的结构信息,因为User表所包含的信息比较多所以结构...

mysql环境变量怎么设置
2、设置完成后我们再试试看-cmd-->mysql 已经连接上mysql了,接下来我们可以使用dml、sql语言来创建我们自己的数据库了;3、首先,要创建一个数据库名字为test_user;创建成功!4、创建一个张数据表,使用脚本即可。注意,创建table之前一定要use databasename;你能用这个命令得到mysqld服务器缺省缓冲区...

mysql如何设置最大错误连接数
安装好Mysql服务端后,找到配置文件(my.cnf或my.ini),在 [mysqld]部分设置如下:max_connect_errors = 6000 表示最大错误连接数是6000。之后重启Mysql服务即可。

如何让mysqld进程以 非系统root权限启动
如果你用safe_mysqld或mysql.server启动服务器,你可以将一个时区设置加到safe_mysqld。找到启动服务器的行并在该行前加入下列命令: TZ=US\/Central export TZ 上面命令的语法是Solaris的,对于其他系统语法可能不同,请查阅相关手册。如果你确实修改了你的启动脚本,要记住下次你安装MySQL时(如升级到新...

Mysql 开机自启动怎么设置
请点击输入图片描述 请点击输入图片描述 接下来可以看到它下面有一个我们的目标——服务。请点击输入图片描述 请点击输入图片描述 服务的话它是按字母排列的,我们往下拉,找到Mysql服务。此时可以看到它是一个手动启动的状态。请点击输入图片描述 请点击输入图片描述 在mysql服务上点击鼠标右键,选择属性。...

学会设置五大类MySQL参数
用于排序和order by操作 最好将其设置为 M 然后在会话中可以将其作为一个会话变量设置为更大的值 (五)慢速查询日志 慢速查询日志是MySQL很有用的一个特性 log_slow_queries MySQL参数中log_slow_queries参数在f文件中设置它 将其设置为on 默认情况下 MySQL会将文件放到数据目录 文件以 主机名 slow ...

淮北市17299743126: mysql如何设置date字段里边,自动获取当前日期的. -
薄钱一芷: timestamp这种类型就是包含日期和时间的而且根据时区来显示的,将这列的类型设置为date时你看看这一列有没有允许空值,date是有效的数据类型报错的话一般都是没有允许空值后面还default null,你可以用curdate()去返回当前日期.

淮北市17299743126: 请问 如何用命令行将日期date的值 插入到mysql中的表格里? -
薄钱一芷: insert into tab_tmp(test_day) values (date_format(now(),'%Y%m%d'))

淮北市17299743126: mysql修改字段中的日期时间 -
薄钱一芷: MySQL 可以使用 DATE_ADD 函数, 来增加天数 下面是一个例子:mysql> SELECT DATE_ADD(-> '2000-01-01 00:00:00.000000',-> INTERVAL 2 DAY) A,-> DATE_SUB(-> '2000-01-01 00:00:00.000000',-> INTERVAL 2 DAY) B; +----------...

淮北市17299743126: 如何修改mysql中的时间格式 -
薄钱一芷: 原来数据类型是date,改为datetime就是2001-01-01 00:00:00 的格式.

淮北市17299743126: 如何设置 Mysql中的datetime的默认值 -
薄钱一芷: 问题:MySQL datetime数据类型设置当前时间为默认值 解决:-- 方法一:由于MySQL目前字段的默认值不支持函数,所以以create_time datetime default now() 的形式设置默认值是不可能的.代替的方案是使用TIMESTAMP类型代替...

淮北市17299743126: mysql怎么插入date 当前系统时间 -
薄钱一芷: DATE_FORMAT(A.CREATE_TIME, '%Y-%m-%d %H:%i:%s')或者todate

淮北市17299743126: 怎么在mysql中设置时间格式 -
薄钱一芷: 通过sql语句查询下 看看现在的值 show variables like '%date%'; 默认的值是:date_format= %Y-%m-%d datetime_format=%Y-%m-%d %H:%i:%s 然后在mysql的配置文件my.cnf 或者 my.ini中 加入 [mysqld] date_format= %Y/%m/%d datetime_format=%Y/%m/%d %H:%i:%s 最后mysql服务器重启即可.

淮北市17299743126: 如何将一个字符串存储为mysql日期字段? -
薄钱一芷: mysql 的date函数即可

淮北市17299743126: 如何向MYSQL中插入date和date - time类型的数据.
薄钱一芷: 如果是获取当前时间的话 使用mysql自带的函数 curdate()返回日期型数据 'YYYY-MM-DD' now()返回日期时间型数据 'YYYY-MM-DD HH:MM:SS'$sql="insert into xxx_table (xxx_date , xxx_datetime) values( curdate(),now() )";

淮北市17299743126: sql中的date只有年月日么?怎么把时间加上 -
薄钱一芷: DATETIME '0000-00-00 00:00:00'这个可以具体到时间.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网