当前位置:首页 » 编程语言 » sql中cast日期
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

sql中cast日期

发布时间: 2022-10-23 00:47:13

A. sql表中,有year,month,day三个字段(smallint),怎样将这三个字段合并成date字段,显示成日期格式谢

select cast(cast(year as varchar(10))+'-'+cast(month as varchar(10))+'-'+cast(day as varchar(10)) as datetime) date from 表
--解释,先把年月日组合在一起,变成 年-月-日,然后转换为datetime类型。

B. sql怎么讲整型转换为日期型好麻烦!!!

当然不行了。整型不能直接转换成时间。
可以用一个语句来实现:
declare @a int
set @a=20110320
select convert(datetime,cast(@a as varchar(8)),21)

C. SQL里cast的用法是什么

Select cast(getdate() as varchar(10))
强制将类型转换,上面就是将日期类型转为字符类型

D. sql 怎么把日期类型的数据转换成数字类型

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

E. SQL中CAST和CONVERT用在时间转换上的区别(我新手,越详细越好)

cast 和convert都是用来转化数据类型的,功能上是差不多的。
表达式:CAST ( expression AS data_type ) ,
CONVERT (data_type[(length)], expression [, style]),
在时间转化中一般用到convert,因为它比cast多加了一个style,可以转化成不同时间的,打个简单的例子吧,比方说查找一下当前的时间,select getdate(),而我们只需要到年月日而已,这时我们就可以把它转化为select convert(varchar(100),GETDATE(),111)转化成我们需要的,而select CAST(GETDATE() as varchar(30))cast就没办法或者是转化过程比较繁琐,convert时间后面的style值不同产生的时间格式也不一样,具体可参看网站http://www.w3school.com.cn/sql/func_convert.asp

F. SQL server cast () 字符串转换成时间的问题

好像不能直接转吧~~
拆分你的字符串:
SELECT CONVERT(char(10),CAST( LEFT('20091014191338',8) AS datetime ),121) + ' '+SUBSTRING('20091014191338',9,2) + ':'+RIGHT('20091014191338',2) + ':00.000'

G. SQL中CAST和CONVERT的区别是什么

如果SQL Server程序员想将表达式从一种换为另一种,他可以从SQL Server 7和2000中自带的两种功能中做出选择。在存储过程或其他情况下,我们常常需要将数据从datetime型转化成varchar型;CONVERT和CAST就可以用于这种情况。

由于SQL Server提供两种功能,因此应该选择哪种功能或应该在哪种情况下使用该功能就很容易让人困惑了。CONVERT是专对SQL Server使用的,使日期与时间值,小数之间转换具有更宽的灵活性。

CAST是两种功能中更具ANSI标准的功能,即虽然更具便携性(比如,使用CAST的函数能更容易的被其它数据库软件使用),但功能相对弱一些。不过,当小数转化为数值,并保留原始表达式中的小数数值时,仍然需要使用CAST。因此,我建议首先使用CAST,如果遇到必须使用CONVERT的情况时再使用CONVERT。

CAST和CONVERT还能联合使用,达到特殊的效果。比如,在current date下生成char变量一般使用以下方法:

SELECT CONVERT(CHAR(10), CURRENT_TIMESTAMP, 102)

(102表明使用了ANSI日期模式,即yy.mm.dd型)

然而,如果你希望将这个变量明确生成为datetime或smalldatetime变量,以此在特定的数据库栏中兼容,那么你可以使用以下语句:

SELECT CAST(CONVERT(CHAR(10),CURRENT_TIMESTAMP,102) AS DATETIME

返回值将是 yy.mm.dd 00:00:00(如12:00AM作为时间戳;

H. 在sql中如何将timestamp转化为date类型,用cast转只有日期部分,没有时间部分,如何

楼主使用的是MSSQL还是ORCALE 或者其他?每种数据库对CAST的函数定义都不太一样;
MSSQL中要定义转换的类型,就是那些什么112,108之类的类型,具体每个代表什么类型忘记了,可以自己尝试一下;select cast(datetime,'转换的数据',112)
在oracle中就没那么复杂了,oracle有一点讨厌的是要先to_date一下,select cast(to_date('2013-11-22 15:33:12','yyyy-mm-dd hh24:mi:ss') as date) from al; 实际上在oracle也很少用到这个函数;

I. sql中日期函数

这样就行了,注意你cast成nvarchar类型,那么‘年’这种字符串前一定要加N,:
declare @Year int
declare @Month int
select @Year =2010
select @Month =12
select
case when @Month = 12 then cast(@Year+1 as nvarchar)+N'年'+cast(@Month-11 as nvarchar)+N'月01'
else
cast(@Year as nvarchar)+N'年'+cast(@Month+1 as nvarchar)+N'月01' end+N'至'+
case when @Month = 12 then cast(@Year+1 as nvarchar)+N'年'+cast(@Month-11 as nvarchar)+N'月30'
else
cast(@Year as nvarchar)+N'年'+cast( @Month+1 as nvarchar)+N'月30' end
我也不知道你到底想要什么东西,如果用datediff的话得到的就是一个天数,也没有必要加上年月日了:
declare @Year int
declare @Month int

select @Year =2010
select @Month =4
select

datediff
(day,
case when @Month = 12 then cast(@Year+1 as nvarchar)+' '+cast(@Month-11 as nvarchar)+' 01'
else
cast(@Year as nvarchar)+' '+cast(@Month+1 as nvarchar)+' 01' end,

cast(@Year as nvarchar)+' '+cast( @Month as nvarchar)+' 01' )

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

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

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

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

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

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

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

(10)sql中cast日期扩展阅读:

一、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达到效果。