linux mysql date 格式_Linux系统下date的使用

博客文章除注明转载外,均为原创。转载请注明出处。

1.Linux date的用法

(1)

UTC  (Universal Time Coordinated,UTC)世界协调时间

CST  (China Standard Time UTC+8:00)中国沿海时间(北京时间)

GMT  (Greenwich Mean Time)格林威治标准时间

(2)设置时间date -s "01:01:01 2017-12-12"

//这样可以设置全部时间date -s

"01:01:01 20171212" //这样可以设置全部时间

date -s

"2017-12-12 01:01:01" //这样可以设置全部时间

date -s

"20171212 01:01:01" //这样可以设置全部时间

(3)时间的格式:

%n : 下一行

%t : 跳格

%H : 小时(00..23)

%M : 分钟(00..59)

%p : 显示本地 AM 或 PM

%T : 直接显示时间 (24 小时制)

%X : 相当于 %H:%M:%S

%d : 日 (01..31)

%D : 直接显示日期 (mm/dd/yy)

%b : 月份 (Jan..Dec)

%m : 月份 (01..12)

%y : 年份的最后两位数字 (00.99)

%Y : 完整年份 (0000..9999)

%U : 一年中的第几周 (00..53) (以 Sunday 为一周的第一天的情形)

%w : 一周中的第几天 (0..6)

%W : 一年中的第几周 (00..53) (以 Monday 为一周的第一天的情形)

date -d today +"%Y-%m-%d %H:%M:%S"

# date -d today +"%Y-%m-%d %H:%M:%S"

2017-12-12 15:10:29

今天表示:date +%Y%m%d

# date +%Y%m%d

20171212

昨天表示:date +%Y%m%d --date="-1 day"

# date +%Y%m%d --date="-1 day"

20171211

(4)时间的运算-加减

date +%Y%m%d         //显示现在天年月日

date +%Y%m%d --date="+1 day"  //显示后一天的日期

date +%Y%m%d --date="-1 day"  //显示前一天的日期

date +%Y%m%d --date="-1 month"  //显示上一月的日期

date +%Y%m%d --date="+1 month"  //显示下一月的日期

date +%Y%m%d --date="-1 year"  //显示前一年的日期

date +%Y%m%d --date="+1 year"  //显示下一年的日期

2.时钟相关(hwclock/clock)

(1)查看硬件时间

hwclock --show

clock --show

(2)设置硬件时间

hwclock --set --date="12/07/17 10:30:00" (月/日/年 时:分:秒)

clock --set --date="12/07/0615 10:30:00" (月/日/年 时:分:秒)

(3)硬件时间和系统时间的同步

硬件时钟与系统时钟同步:

hwclock --hctosys(hc代表硬件时间,sys代表系统时间)

或者

clock --hctosys

系统时钟和硬件时钟同步:

hwclock --systohc

或者

clock --systohc

3.时间和时间戳

日期: 年-月-日  如: '2017-12-08'     范围从0001-1-1至9999-12-31

时间: 小时数:分钟数:秒数 如:'23:59:59'

时间戳: 年-月-日 小时数:分钟数:秒数(.微妙数) 如: '2017-12-08 23:59:59.59'

4.Linux下时间和时间戳的转化

系统时间精度到s

转换指定日期为Unix时间戳:

date -d '2017-10-01 00:00:00' +%s

Unix时间戳转换为日期时间:

date -d @1506787200 +"%Y-%m-%d %H:%M:%S"

# date -d '2017-10-01 00:00:00' +%s

1506787200

# date -d @1506787200 +"%Y-%m-%d %H:%M:%S"

2017-10-01 00:00:00

# date -d '2017-10-01 00:00:00.123' +%s

1506787200

#date -d "@1506787200" +"%Y%m%d %H:%M:%S"

20171001 00:00:00

也可以用awk的时间函数(strftime)

#echo "1506592730" |awk '{print strftime ("%F %T",$0)}'

2017-09-28 17:58:50

4.数据库时间和时间戳的转化

数据库时间精度到微秒

select from_unixtime(1506787200000/1000); 时间戳/1000

select unix_timestamp('2017-10-01 00:00:00')*1000

下面是MySQL中的演示:

mysql> select unix_timestamp('2017-10-01 00:00:00')*1000;

+--------------------------------------------+

| unix_timestamp('2017-10-01 00:00:00')*1000 |

+--------------------------------------------+

|                              1506787200000 |

+--------------------------------------------+

mysql> select from_unixtime(1506787200000/1000);

+-----------------------------------+

| from_unixtime(1506787200000/1000) |

+-----------------------------------+

| 2017-10-01 00:00:00.0000          |

+-----------------------------------+

1 row in set (0.00 sec)

mysql> select from_unixtime(1506787200);

+---------------------------+

| from_unixtime(1506787200) |

+---------------------------+

| 2017-10-01 00:00:00       |

+---------------------------+

5. 数据库日期时间配置

oracle设置默认时间格式:

nls_date_format参数里面设置时间格式:

yyyy-mm-dd hh24:mi:ss' scope=spfile

mysql时间格式:

(root@127.0.0.1:)[(none)]> show variables like '%date%format';

+-----------------+-------------------+

| Variable_name   | Value             |

+-----------------+-------------------+

| date_format     | %Y-%m-%d          |

| datetime_format | %Y-%m-%d %H:%i:%s |

+-----------------+-------------------+

---The End

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值