sql格式化日期字元串
❶ sql里格式化字元串函數
select right(cast(power(10,3) as varchar)+33,3)
select right(cast(power(10,3) as varchar)+1,3)
❷ sql日期轉string
在MySQL資料庫中可以用date_format函數將日期類型轉成字元串類型。
❸ PLSQL中SQL語句怎樣轉換日期型函數為字元型
to_char函數可以將日期值格式化為字元串; to_date函數將字元串按指定格式轉換成日期值。
在查詢中, 將'2014/01/01'轉換成日期值,然後再用作查詢條件,這樣會比較好。
select ... where enddate < to_date('2014/01/01', 'yyyy/mm/dd')
❹ sql中格式化字元串或時間,遇到多少,寫多少,持
--求開始時間和結束時間相差的天數
DECLARE @result int
DECLARE @StartDayStartTime DATETIME
DECLARE @EndDayEndTime DATETIME
set @result=DATEDIFF (d,CONVERT(Datetime,@StartDay),CONVERT(Datetime,@EndDay))
--將2012-07-12 15:56:53 格式化為20120712 ,這種需求大多是因為每日數據量更新過大,所以為每天創建一張表,在實現跨多天查詢的時候,你懂得。
--執行sql,並返回,最後求和,@sql務必要聲明為nvarchar類型
declare @sql nvarchar(500)
declare @sm decimal(18,2) --開始里程
declare @em decimal(18,2)--結束里程
declare @sum decimal(18,2)--當天時間段內的里程
declare @temp decimal(18,2)--里程變數
set @sql='SELECT top 1 @temp=Convert(decimal(18,2),'+@GpsPath+'.Mileage) FROM '+@GpsPath+' WHERE GpsTime<='''+CONVERT(varchar(100),@E, 21)+''' AND TerminalNo=''02200051'' and '+@GpsPath+'.Mileage>0 ORDER BY GpsTime desc'
exec sp_executesql @sql,N'@temp decimal(18,2) output',@em out print @em
set @sql='SELECT top 1 @temp=Convert(decimal(18,2),'+@GpsPath+'.Mileage) FROM '+@GpsPath+' WHERE GpsTime>='''+CONVERT(varchar(100),@S, 21)+''' AND TerminalNo=''02200051'' and '+@GpsPath+'.Mileage>0 ORDER BY GpsTime asc'
exec sp_executesql @sql,N'@temp decimal(18,2) output',@sm out print @sm
set @sum=Convert(decimal(18,2),@em)-Convert(decimal(18,2),@sm)
❺ sql日期格式化怎麼處理
1. SELECTconvert(varchar, getdate(), 100)-- mon dd yyyy hh:mmAM (or PM)
-- Oct 2 2008 11:01AM
SELECTconvert(varchar, getdate(), 101)-- mm/dd/yyyy - 10/02/2008
SELECTconvert(varchar, getdate(), 102)-- yyyy.mm.dd -- 2008.10.02
SELECTconvert(varchar, getdate(), 103)-- dd/mm/yyyy
SELECTconvert(varchar, getdate(), 104)-- dd.mm.yyyy
SELECTconvert(varchar, getdate(), 105)-- dd-mm-yyyy
SELECTconvert(varchar, getdate(), 106)-- dd mon yyyy
SELECTconvert(varchar, getdate(), 107)-- mon dd, yyyy
SELECTconvert(varchar, getdate(), 108)-- hh:mm:ss
SELECTconvert(varchar, getdate(), 109)-- mon dd yyyy hh:mm:ss:mmmAM (or PM)
-- Oct 2 2008 11:02:44:013AM
SELECTconvert(varchar, getdate(), 110)-- mm-dd-yyyy
SELECTconvert(varchar, getdate(), 111)-- yyyy/mm/dd
SELECTconvert(varchar, getdate(), 112)-- yyyymmdd
SELECTconvert(varchar, getdate(), 113)-- dd mon yyyy hh:mm:ss:mmm
-- 02 Oct 2008 11:02:07:577
SELECTconvert(varchar, getdate(), 114)-- hh:mm:ss:mmm(24h)
SELECTconvert(varchar, getdate(), 120)-- yyyy-mm-dd hh:mm:ss(24h)
SELECTconvert(varchar, getdate(), 121)-- yyyy-mm-dd hh:mm:ss.mmm
SELECTconvert(varchar, getdate(), 126)-- yyyy-mm-ddThh:mm:ss.mmm
-- 2008-10-02T10:52:47.513
-- 利用字元串函數創建不同的日期格式
SELECTreplace(convert(varchar, getdate(), 111),'/',' ')-- yyyy mm dd
SELECTconvert(varchar(7), getdate(), 126)-- yyyy-mm
SELECTright(convert(varchar, getdate(), 106), 8)-- mon yyyy
go
--通用的日期轉換函數CREATE FUNCTION dbo.fnFormatDate (@Datetime DATETIME, @FormatMask VARCHAR(32))RETURNS VARCHAR(32)AS
BEGIN
DECLARE@StringDateVARCHAR(32)
SET@StringDate = @FormatMask
IF (CHARINDEX ('YYYY',@StringDate) > 0)
SET@StringDate =REPLACE(@StringDate,'YYYY',DATENAME(YY, @Datetime))
IF (CHARINDEX ('YY',@StringDate) > 0)
SET@StringDate =REPLACE(@StringDate,'YY',RIGHT(DATENAME(YY, @Datetime),2))
IF (CHARINDEX ('Month',@StringDate) > 0)
SET@StringDate =REPLACE(@StringDate,'Month',DATENAME(MM, @Datetime))
IF (CHARINDEX ('MON',@StringDateCOLLATESQL_Latin1_General_CP1_CS_AS)>0)
SET@StringDate =REPLACE(@StringDate,'MON',LEFT(UPPER(DATENAME(MM, @Datetime)),3))
IF (CHARINDEX ('Mon',@StringDate) > 0)
SET@StringDate =REPLACE(@StringDate,'Mon',LEFT(DATENAME(MM, @Datetime),3))
IF (CHARINDEX ('MM',@StringDate) > 0)
SET@StringDate =REPLACE(@StringDate,'MM',RIGHT('0'+CONVERT(VARCHAR,DATEPART(MM, @Datetime)),2))
IF (CHARINDEX ('M',@StringDate) > 0)
SET@StringDate =REPLACE(@StringDate,'M',CONVERT(VARCHAR,DATEPART(MM, @Datetime)))
IF (CHARINDEX ('DD',@StringDate) > 0)
SET@StringDate =REPLACE(@StringDate,'DD',right('0'+DATENAME(DD, @Datetime),2))
IF (CHARINDEX ('D',@StringDate) > 0)
SET@StringDate =REPLACE(@StringDate,'D',DATENAME(DD, @Datetime))
RETURN@StringDate
GO
2.通過dateadd函數來制定時間間隔
select dateadd(year,-1,convert(varchar, getdate(), 101))前一年,後一年反之
select dateadd(month,-1,convert(varchar, getdate(), 101))前一月,後一月反之