日期与字符串之间的转换

1.sql server 

一、日期转换为字符串、日期格式
1、使用函数CONVERT:
CONVERT ( data_type [ ( length ) ] , expression [ , style ] )
2、参数
expression :是任何有效的 sql 表达式。。
data_type:目标系统所提供的数据类型,包括 bigint 和 sql_variant。不能使用用户定义的数据类型。
length:nchar、nvarchar、char、varchar、binary 或 varbinary 数据类型的可选参数。
style:日期格式样式,借以将 datetime 或 smalldatetime 数据转换为字符数据(nchar、nvarchar、char、varchar、nchar 或 nvarchar 数据类型);或者字符串格式样式,借以将 float、real、money 或 smallmoney 数据转换为字符数据(nchar、nvarchar、char、varchar、nchar 或 nvarchar 数据类型)。
3、通常用到的字符串转日期格式
Select CONVERT(varchar(100), GETDATE(), 0): 05 16 2006 10:57AM
Select CONVERT(varchar(100), GETDATE(), 1): 05/16/06
Select CONVERT(varchar(100), GETDATE(), 2): 06.05.16
Select CONVERT(varchar(100), GETDATE(), 3): 16/05/06
Select CONVERT(varchar(100), GETDATE(), 4): 16.05.06
Select CONVERT(varchar(100), GETDATE(), 5): 16-05-06
Select CONVERT(varchar(100), GETDATE(), 6): 16 05 06
Select CONVERT(varchar(100), GETDATE(), 7): 05 16, 06
Select CONVERT(varchar(100), GETDATE(), 8): 10:57:46
Select CONVERT(varchar(100), GETDATE(), 9): 05 16 2006 10:57:46:827AM
Select CONVERT(varchar(100), GETDATE(), 10): 05-16-06
Select CONVERT(varchar(100), GETDATE(), 11): 06/05/16
Select CONVERT(varchar(100), GETDATE(), 12): 060516
Select CONVERT(varchar(100), GETDATE(), 13): 16 05 2006 10:57:46:937
Select CONVERT(varchar(100), GETDATE(), 14): 10:57:46:967
Select CONVERT(varchar(100), GETDATE(), 20): 2006-05-16 10:57:47
Select CONVERT(varchar(100), GETDATE(), 21): 2006-05-16 10:57:47.157
Select CONVERT(varchar(100), GETDATE(), 22): 05/16/06 10:57:47 AM
Select CONVERT(varchar(100), GETDATE(), 23): 2006-05-16
Select CONVERT(varchar(100), GETDATE(), 24): 10:57:47
Select CONVERT(varchar(100), GETDATE(), 25): 2006-05-16 10:57:47.250
Select CONVERT(varchar(100), GETDATE(), 100): 05 16 2006 10:57AM
Select CONVERT(varchar(100), GETDATE(), 101): 05/16/2006
Select CONVERT(varchar(100), GETDATE(), 102): 2006.05.16
Select CONVERT(varchar(100), GETDATE(), 103): 16/05/2006
Select CONVERT(varchar(100), GETDATE(), 104): 16.05.2006
Select CONVERT(varchar(100), GETDATE(), 105): 16-05-2006
Select CONVERT(varchar(100), GETDATE(), 106): 16 05 2006
Select CONVERT(varchar(100), GETDATE(), 107): 05 16, 2006
Select CONVERT(varchar(100), GETDATE(), 108): 10:57:49
Select CONVERT(varchar(100), GETDATE(), 109): 05 16 2006 10:57:49:437AM
Select CONVERT(varchar(100), GETDATE(), 110): 05-16-2006
Select CONVERT(varchar(100), GETDATE(), 111): 2006/05/16
Select CONVERT(varchar(100), GETDATE(), 112): 20060516
Select CONVERT(varchar(100), GETDATE(), 113): 16 05 2006 10:57:49:513
Select CONVERT(varchar(100), GETDATE(), 114): 10:57:49:547
Select CONVERT(varchar(100), GETDATE(), 120): 2006-05-16 10:57:49
Select CONVERT(varchar(100), GETDATE(), 121): 2006-05-16 10:57:49.700
Select CONVERT(varchar(100), GETDATE(), 126): 2006-05-16T10:57:49.827
Select CONVERT(varchar(100), GETDATE(), 130): 18 ???? ?????? 1427 10:57:49:907AM
Select CONVERT(varchar(100), GETDATE(), 131): 18/04/1427 10:57:49:920AM

2.mysql 

1.常用日期转换字符串函数
DATE_FORMAT(now(),'%Y-%m-%d');  2022-09-07
DATE_FORMAT(now(),'%Y-%m') ;  2022-09
DATE_FORMAT(now(),'%Y') ;  2022

3.hive 

固定日期转换成时间戳
select unix_timestamp('2016-08-16','yyyy-MM-dd') --1471276800
select unix_timestamp('20160816','yyyyMMdd') --1471276800
select unix_timestamp('2016-08-16T10:02:41Z', "yyyy-MM-dd'T'HH:mm:ss'Z'") --1471312961

16/Mar/2017:12:25:01 +0800 转成正常格式(yyyy-MM-dd hh:mm:ss)
select from_unixtime(to_unix_timestamp('16/Mar/2017:12:25:01 +0800', 'dd/MMM/yyy:HH:mm:ss Z'))

时间戳转换程固定日期
select from_unixtime(1471276800,'yyyy-MM-dd') --2016-08-16
select from_unixtime(1471276800,'yyyyMMdd') --20160816
select from_unixtime(1471312961) --    2016-08-16 10:02:41
select from_unixtime( unix_timestamp('20160816','yyyyMMdd'),'yyyy-MM-dd')  --2016-08-16
select date_format('2016-08-16','yyyyMMdd') --20160816

返回日期时间字段中的日期部分
select to_date('2016-08-16 10:03:01') --2016-08-16
类似sql 中的date
取当前时间
select from_unixtime(unix_timestamp(),'yyyy-MM-dd HH:mm:ss')
select from_unixtime(unix_timestamp(),'yyyy-MM-dd') 
返回日期中的年
select year('2016-08-16 10:03:01') --2016
返回日期中的月
select month('2016-08-16 10:03:01') --8
返回日期中的日
select day('2016-08-16 10:03:01') --16
返回日期中的时
select hour('2016-08-16 10:03:01') --10
返回日期中的分
select minute('2016-08-16 10:03:01') --3
返回日期中的秒
select second('2016-08-16 10:03:01') --1

返回日期在当前的周数
select weekofyear('2016-08-16 10:03:01') --33

返回结束日期减去开始日期的天数
select datediff('2016-08-16','2016-08-11') 

返回开始日期startdate增加days天后的日期
select date_add('2016-08-16',10)

返回开始日期startdate减少days天后的日期
select date_sub('2016-08-16',10)

返回当天三种方式
SELECT CURRENT_DATE;
--2017-06-15
SELECT CURRENT_TIMESTAMP;--返回时分秒
--2017-06-15 19:54:44
SELECT from_unixtime(unix_timestamp());
--2017-06-15 19:55:04
返回当前时间戳
Select current_timestamp--2018-06-18 10:37:53.278

返回当月的第一天
select trunc('2016-08-16','MM') --2016-08-01
返回当年的第一天
select trunc('2016-08-16','YEAR') --2016-01-01

转换函数
cast(substr(A_START_DT,1,6) as int)

4.oracle 


	SELECT TO_CHAR(DATE'2019-08-30','YYYY'),   -- '2019'
		   TO_CHAR(DATE'2019-08-30','YYYYMM'), -- '201908'
		   TO_CHAR(DATE'2019-08-30','WW'),     -- '35'  第35周
		   TO_CHAR(DATE'2019-08-30','IW'),     -- '35'  第35周(自然周)
		   TO_CHAR(DATE'2019-08-30','Q'),      -- '3'   第3季度
		   TO_CHAR(DATE'2019-08-30','MM'),     -- '08'
		   TO_CHAR(DATE'2019-08-30','DD'),     -- '30'
		   TO_CHAR(DATE'2019-08-30','D')       -- '6'   当周的第几天(星期天为第一天)
	  FROM DUAL;
	  
	SELECT to_char(sysdate,'YYYY') as "year",
		to_char(sysdate,'mm') as "month",
		to_char(sysdate,'dd') as "day",
		to_char(sysdate,'hh24') as "hour",
		to_char(sysdate,'mi') as "minute",
		to_char(sysdate,'ss') as "second",
		to_char(sysdate,'yyyy-mm-dd') as "date",
		to_char(sysdate,'yyyymmdd') as "date2",
		to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') as "datetime"
		FROM dual

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Java日期日期字符串化工具包可以帮助开发人员在日期日期字符串之间进行方便的转换。在Java中,处理日期日期字符串化是比较常见的任务,因此针对这一需求,开发人员可以借助于Java提供的日期相关类和方法进行化操作。 在Java中,Date类和DateFormat类是处理日期日期字符串的关键类。我们可以使用SimpleDateFormat类来定义日期格式,并借助其提供的方法进行日期日期字符串的相互化。 要将日期化为日期字符串,我们可以使用SimpleDateFormat的format()方法。该方法接受一个Date对象作为参数,将日期化为指定格式的字符串。例如,对于一个Date对象date,可以使用如下代码将其化为日期字符串: SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); String dateString = sdf.format(date); 要将日期字符串化为日期对象,我们可以使用SimpleDateFormat的parse()方法。该方法接受一个日期字符串作为参数,并返回相应的Date对象。例如,对于一个日期字符串dateString,可以使用如下代码将其化为日期对象: SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); Date date = sdf.parse(dateString); 需要注意的是,化过程中要确保日期字符串的格式与SimpleDateFormat中定义的格式相匹配,否则会抛出ParseException异常。 除了SimpleDateFormat外,Java 8之后还引入了新的日期时间API,其中包含了更加简洁和易用的日期和时间处理方法。例如,可以使用LocalDate类和DateTimeFormatter类来进行日期日期字符串化。 总而言之,Java日期日期字符串化工具包可以借助Date类、SimpleDateFormat类以及Java 8新的日期时间API中的相关类和方法来实现。根据具体的需求和场景,选择合适的方法进行化操作,可以提高代码的可读性和效率。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值