最近在做一个关于Spark sql清洗数据的项目,其中需要用到正则表达式及一些函数,在这里简单总结一下unix_timestamp、from_unixtime的用法,仅供参考。
一、unix_timestamp函数用法
1、
UNIX_TIMESTAMP()
:若无参数调用,则返回一个 Unix timestamp ('1970-01-01 00:00:00' GMT 之后的秒数) 作为无符号整数,得到当前时间戳
2、
UNIX_TIMESTAMP(date)
:若用date 来调用 UNIX_TIMESTAMP(),它会将参数值以'1970-01-01 00:00:00' GMT后的秒数的形式返回。date 可以是一个 DATE 字符串、一个 DATETIME字符串、一个 TIMESTAMP或一个当地时间的YYMMDD 或YYYMMDD格式的数字。
mysql> SELECT UNIX_TIMESTAMP() ; (执行时的时间:2009-08-06 10:10:40)
->1249524739
mysql> SELECT UNIX_TIMESTAMP('2009-08-06') ;
->1249488000
二、from_unixtime函数用法
语法:from_unixtime(t1,’yyyy-MM-dd HH:mm:ss’)
其中t1是10位的时间戳值,即1970-1-1至今的秒,而13位的所谓毫秒的是不可以的。
对于13位时间戳,需要截取,然后转换成bigint类型,因为from_unixtime类第一个参数只接受bigint类型。例如:
select from_unixtime(cast(substring(tistmp,1,10) as bigint),’yyyy-MM-dd HH’) tim ,count(*) cn from ttengine_hour_data where …
他们两个可以结合使用from_unixtime(unix_timestamp(date_created),'yyyy-MM-dd HH:mm:ss')来规范时间的格式。
如何在不同编程语言中获取现在的Unix时间戳(
Unix timestamp
)?
Java
|
time
|
JavaScript
|
Math.round(new Date().getTime()/1000)
getTime()返回数值的单位是毫秒
|
Microsoft .NET / C#
|
epoch = (DateTime.Now.ToUniversalTime().Ticks - 621355968000000000) / 10000000
|
MySQL
|
SELECT unix_timestamp(now())
|
Perl
|
time
|
PHP
|
time()
|
PostgreSQL
|
SELECT extract(epoch FROM now())
|
Python
|
先 import time 然后 time.time()
|
Ruby
|
获取Unix时间戳:Time.now 或 Time.new
显示Unix时间戳:Time.now.to_i
|
SQL Server
|
SELECT DATEDIFF(s, '1970-01-01 00:00:00', GETUTCDATE())
|
Unix / Linux
|
date +%s
|
VBScript / ASP
|
DateDiff("s", "01/01/1970 00:00:00", Now())
|
其他操作系统
(如果Perl被安装在系统中)
|
命令行状态:perl -e "print time"
|
Java
|
String date = new java.text.SimpleDateFormat("dd/MM/yyyy HH:mm:ss").format(new java.util.Date(Unix timestamp * 1000))
|
JavaScript
|
先 var unixTimestamp = new Date(Unix timestamp * 1000) 然后 commonTime = unixTimestamp.toLocaleString()
|
Linux
|
date -d @Unix timestamp
|
MySQL
|
from_unixtime(Unix timestamp)
|
Perl
|
先 my $time = Unix timestamp 然后 my ($sec, $min, $hour, $day, $month, $year) = (localtime($time))[0,1,2,3,4,5,6]
|
PHP
|
date('r', Unix timestamp)
|
PostgreSQL
|
SELECT TIMESTAMP WITH TIME ZONE 'epoch' + Unix timestamp) * INTERVAL '1 second';
|
Python
|
先 import time 然后 time.gmtime(Unix timestamp)
|
Ruby
|
Time.at(Unix timestamp)
|
SQL Server
|
DATEADD(s, Unix timestamp, '1970-01-01 00:00:00')
|
VBScript / ASP
|
DateAdd("s", Unix timestamp, "01/01/1970 00:00:00")
|
其他操作系统
(如果Perl被安装在系统中)
|
命令行状态:perl -e "print scalar(localtime(Unix timestamp))"
|
参考链接:
最近在做一个关于Spark sql清洗数据的项目,其中需要用到正则表达式及一些函数,在这里简单总结一下unix_timestamp、from_unixtime的用法,仅供参考。一、unix_timestamp函数用法 1、UNIX_TIMESTAMP() :若无参数调用,则返回一个 Unix timestamp ('1970-01-01 00:00:00' GMT 之后的秒数) 作为无符号整...
我们经常会面临要从数据库里判断时间,取出特定日期的查询。但是数据库里储存的都是
unix
时间戳
,处理起来并不是特别友好。幸而MYSQL提供了几个处理
时间戳
的
函数
,可以帮助我们在查询的时候,就将
时间戳
格式化。用法举例如下:
1.FROM_
UNIX
TIME
()
函数
FROM_
UNIX
TIME
(
unix
_
timestamp
,format)
参数
unix
_
timestamp
时间戳
可以用数据库...
The
unix
time
stamp is a way to track
time
as a running total of seconds. This count starts at the
Unix
Epoch on January 1st, 1970 at UTC.
unix
time
stamp 是数字,时区无关,建议全程在系统内部,包括接口也应该采用
unix
time
stamp...
select
unix
_
timestamp
();
2)如果参数date满足yyyy-MM-dd HH:mm:ss形式,则可以直接
unix
_
timestamp
(string date) 得到参数对应的
时间戳
或者满足yyyy-MM-dd形式
select
unix
_
timestamp
('2018-12-05 01:10:00',...
MySQLTransactionRollbackException: Lock wait timeout exceeded; try restarting transaction异常解决
lambdaQueryWrapper常用方法
IDEA中项目集成git提交代码详细步骤