sybase datediff mysql

编程入门 行业动态 更新时间:2024-10-24 08:26:32

<a href=https://www.elefans.com/category/jswz/34/1747599.html style=sybase datediff mysql"/>

sybase datediff mysql

今天做php项目的时候碰到一个问题,经过上网查找,找到了解决方法,特意记下来,以备以后查找。问题是保存在sybase数据库中的时间格式是类似"2007-06-18 14:12:30"这种格式的,但是当用php从数据库中取出时,格式变了,不是我想要的那种格式。于是上网查了一下sybase的日期时间函数,找到了sybase中常用的日期时间函数如下:

日期函数

getdate()

得到当前时间,可以设置得到各种时间格式.

datepart(日期部分,日期)

取指定时间的某一个部分,年月天时分秒.

datediff(日期部分,日期1,日期2)

计算指定的日期1和日期2的时间差多少.

dateadd(日期部分,数值表达式,日期)

计算指定时间,再加上表达式指定的时间长度.

--取时间的某一个部分

select datepart(yy,getdate()) --year

select datepart(mm,getdate()) --month

select datepart(dd,getdate()) --day

select datepart(hh,getdate()) --hour

select datepart(mi,getdate()) --min

select datepart(ss,getdate()) --sec

--取星期几

set datefirst 1

select datepart(weekday,getdate()) --weekday

--字符串时间

select getdate() -- ‘03/11/12‘

select convert(char,getdate(),101) -- ‘09/27/2003‘

select convert(char,getdate(),102) -- ‘2003.11.12‘

select convert(char,getdate(),103) -- ‘27/09/2003‘

select convert(char,getdate(),104) -- ‘27.09.2003‘

select convert(char,getdate(),105) -- ‘27-09-2003‘

select convert(char,getdate(),106) -- ‘27 Sep 2003‘

select convert(char,getdate(),107) --‘Sep 27, 2003‘

select convert(char,getdate(),108) --‘11:16:06‘

select convert(char,getdate(),109) --‘Sep 27 2003 11:16:28:746AM‘

select convert(char,getdate(),110) --‘09-27-2003‘

select convert(char,getdate(),111) --‘2003/09/27‘

select convert(char,getdate(),112) --‘20030927‘

select rtrim(convert(char,getdate(),102))+‘ ‘+(convert(char,getdate(),108)) -- ‘2003.11.12 11:03:41‘

--整数时间

select convert(int,convert(char(10),getdate(),112)) -- 20031112

select datepart(hh,getdate())*10000 + datepart(mi,getdate())*100 + datepart(ss,getdate()) -- 110646

--时间格式 "YYYY.MM.DD HH:MI:SS" 转换为 "YYYYMMDDHHMISS"

declare @a datetime,@tmp varchar(20),@tmp1 varchar(20)

select @a=convert(datetime,‘2004.08.03 12:12:12‘)

select @tmp=convert(char(10),@a,112)

select @tmp

select @tmp1=convert(char(10),datepart(hh,@a)*10000 + datepart(mi,@a)*100 + datepart(ss,@a))

select @tmp1

select @tmp=@tmp+@tmp1

select @tmp

--当月最后一天

declare

@tmpstr varchar(10)

@mm int,

@premm int,

@curmmlastday varchar(10)

begin

select @mm=datepart(month,getdate())--当月

select @premm=datepart(month,dateadd(month,-1,getdate())) --上个月

if (@mm>=1 and @mm<=8)

select @tmpstr=convert(char(4),datepart(year,getdate()))+‘.0‘+convert(char(1),datepart(month,dateadd(month,1,getdate())))+‘.‘+‘01‘

else if (@mm>=9 and @mm<=11)

select @tmpstr=convert(char(4),datepart(year,getdate()))+‘.‘+convert(char(2),datepart(month,dateadd(month,1,getdate())))+‘.‘+‘01‘

else

select @tmpstr=convert(char(4),datepart(year,dateadd(year,1,getdate())))+‘.0‘+convert(char(1),datepart(month,dateadd(month,1,getdate())))+‘.‘+‘01‘

select @curmmlastday=convert(char(10),dateadd(day,-1,@tmpstr),102) --当月最后一天

end

我自己组合了一下,利用(convert(char,PUBDATE,102)+‘ ‘+convert(char,PUBDATE,108)) AS PUBDATE先把数据库中PUBDATE字段转换成"2007.06.18 14:12:30"的格式,再利用php的str_replace函数把"."替换成"-",终于得到了我想要的类似"2007-06-18 14:12:30”的日期格式。

更多推荐

sybase datediff mysql

本文发布于:2023-07-03 03:17:25,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1000483.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:sybase   datediff   mysql

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!