oracle和mssql相应函数的使用

一、mssql的datediff() 和 oraclede 

1、datediff() : 用于计算两个日期的差值

DATEDIFF(datepart, startdate, enddate), 返回类型int。其中startdate 和 enddate 参数是合法的日期表达式。

SELECT DATEDIFF(day,'2008-06-05','2008-08-05') AS DiffDate

输出值为:61

datepart输入格式:

2、oracle的round()

-- 天:

ROUND(TO_NUMBER(END_DATE - START_DATE))

-- 小时:

ROUND(TO_NUMBER(END_DATE - START_DATE) * 24)

-- 分钟:

ROUND(TO_NUMBER(END_DATE - START_DATE) * 24 * 60)

-- 秒:

ROUND(TO_NUMBER(END_DATE - START_DATE) * 24 * 60 * 60)

-- 毫秒: 
ROUND(TO_NUMBER(END_DATE - START_DATE) * 24 * 60 * 60 * 60) 二

二、mssql的datepart()  和 oracle 的 to_date() 

DATEPART() 函数用于返回日期/时间的单独部分,比如年、月、日、小时、分钟等等

SELECT DATEPART(yyyy,OrderDate) AS OrderYear,
DATEPART(mm,OrderDate) AS OrderMonth,
DATEPART(dd,OrderDate) AS OrderDay,
FROM Orders
WHERE OrderId=1

结果是:2022     09      05 

2、oracle 的 to_date() 的用法

TO_DATE(SYSDATE,'yyyy') 
-- 2022
TO_DATE(SYSDATE,'MM') 
--09
TO_DATE(SYSDATE,'dd') 
-- 05

 

三、mssql的convert() 和to_char()或者to_number()

1 、CONVERT() 函数是把日期转换为新数据类型的通用函数。

     CONVERT() 函数可以用不同的格式显示日期/时间数据。

      语法:  CONVERT(data_type(length),expression,style)

      用法:

SELECT CONVERT(INT, 25.65);
-- 25
       
SELECT CONVERT(VARCHAR(19),GETDATE())
-- Apr 15 2021 7:59AM

SELECT CONVERT(VARCHAR(10),GETDATE(),10)
-- 04-15-21

SELECT CONVERT(VARCHAR(10),GETDATE(),110)
-- 04-15-2021

SELECT CONVERT(VARCHAR(11),GETDATE(),6)、
-- 15 Apr 21

SELECT CONVERT(VARCHAR(11),GETDATE(),106)
-- 15 Apr 2021

SELECT CONVERT(VARCHAR(24),GETDATE(),113)
-- 15 Apr 2021 08:03:37:767

2 oracle 

To_char:转换成字符串类型,如:To_char(1234.5, '$9999.9'),结果:$1234.5
To_date:转换成日期类型,如:To_date('1980-01-01', 'yyyy-mm-dd'),结果:01-1月-80
To_number:转换成数值类型,如:To_number('1234.5'),结果:1234.5

 

posted @ 2022-09-05 20:55  shzhq  阅读(85)  评论(0编辑  收藏  举报