SQL中如何将数字型转换为日期型

比方说20140123这个数字型的字段,我想转换成日期型的字段后再加上1个月得出一个新的日期求指教,谢谢!... 比方说20140123这个数字型的字段,我想转换成日期型的字段后再加上1个月得出一个新的日期
求指教,谢谢!
展开
 我来答
MyOpen
2019-05-21 · TA获得超过2862个赞
知道答主
回答量:68
采纳率:0%
帮助的人:4.1万
展开全部

平时为了方便存储和查询,通常会选择将时间存储为毫秒或者秒的形式。但是页面显示的时候很不直观,需要将整型数字转化成日期格式,转化方式包括下面几种:

1、秒数与Date之间的转换:select from_unixtime(1388776825);

还可以定义时间格式,用法如下:

SELECT FROM_UNIXTIME( 1388776825, '%Y-%m-%d %H:%m:%s');

结果:2014-01-04 03:01:25

SELECT  FROM_UNIXTIME( 1388776825, '%Y年%m月%d' )

结果:2014年1月4

2、将秒数转为Date:SELECT UNIX_TIMESTAMP('2014-03-23 10:10:40')

如果想逆向转换,可以通过unix_timestamp()函数反向转换。用法如下:

SELECT UNIX_TIMESTAMP() ;//获取当前时间的秒数

SELECT UNIX_TIMESTAMP('2014-03-23 10:10:40') ; //获取指定日期格式的秒数

SELECT UNIX_TIMESTAMP('2014-03-23') ; //获取指定日期格式的秒数

扩展资料:

一、date型换int型 

SELECT UNIX_TIMESTAMP(‘2017-9-22 13:54:45’)

二、int型转date型 

SELECT FROM_UNIXTIME(1506059685)

需要注意的是,一个int值转换为DateTime 需要从1970年1月1日0点0分0秒开始,但是必须明确,这个时间是标准时间,而不是北京时间。

数据库中数据的时间都是以标准时间为准绳的。所以必须转换到当前时间, 中国是+8 ,可以简单的调用ToLocalTime达到效果。

badkano
推荐于2017-09-20 · 知道合伙人体育行家
badkano
知道合伙人体育行家
采纳数:144777 获赞数:885365
团长

向TA提问 私信TA
展开全部

用cast函数来进行转换。

先利用cast函数将数字型转为字符型,再用一次cast函数将字符型转为日期型。

语句如下:

select cast(cast(20050927 as varchar) as datetime)

结果如图:

cast函数说明:

语法:

CAST (expression AS data_type)


参数说明:

expression:任何有效的SQServer表达式。

AS:用于分隔两个参数,在AS之前的是要处理的数据,在AS之后是要转换的数据类型。

data_type:目标系统所提供的数据类型,包括bigint和sql_variant,不能使用用户定义的数据类型。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
twvampire
推荐于2017-09-17 · TA获得超过3620个赞
知道大有可为答主
回答量:3029
采纳率:76%
帮助的人:2963万
展开全部

不知道你什么数据库,给出sqlserver的

CREATE TABLE test(date VARCHAR(20))

INSERT INTO dbo.test
        ( date )
VALUES  ( '20140123'  -- date - varchar(20)
          )
          


SELECT DATEADD(mm,1,CAST(date AS DATETIME))
FROM test

结果:

2014-02-23 00:00:00.000

更多追问追答
追问
如果是DB2的呢
追答
db2,,,
里面有个DATE()函数,可以直接用来转你这种只到日期的

大概的语句,,没怎么用过db2
select date(字段) + 1 months
from 表
大概是这样,你可以具体查查是不是这样,,,,
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
浅黄却百里1
2014-01-23 · TA获得超过504个赞
知道小有建树答主
回答量:482
采纳率:0%
帮助的人:255万
展开全部
如果是用oracle 的话,就给楼上的DATEADD 函数,更换成add_months就可以了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
gxlu_edge
2014-01-23 · TA获得超过730个赞
知道小有建树答主
回答量:420
采纳率:0%
帮助的人:330万
展开全部
select dateAdd(m, 1, CONVERT(date, cast(20140123 as varchar), 10))
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式