Heim  >  Artikel  >  Datenbank  >  关于MYSQL 日期时间函数与MSSQL的比较

关于MYSQL 日期时间函数与MSSQL的比较

PHPz
PHPzOriginal
2016-06-07 15:52:181338Durchsuche

1. ADDDATE(DATE,INTERVAL expr TYPE) ADDDATE(expr,days) 
# 当被第二个参数的INTERVAL格式激活后, ADDDATE()就是DATE_ADD()的同义词。相关函数SUBDATE() 则是DATE_SUB()的同义词。对于INTERVAL参数上的信息 ,请参见关于DATE_ADD()的论述。
# 在MSSQL 中 就是DATEADD 函数,第一种参数形式 就是跟MSSQL 一样的,第二种 对于MSSQL来说 直接日期+数字 (数字默认就是天数)

2. ADDTIME(expr,expr2) 
# ADDTIME()将 expr2添加至expr 然后返回结果。 expr 是一个时间或时间日期表达式,而expr2 是一个时间表达式。
# 还是MSSQL中的DATEADD ,只不过提供出来单一的函数处理加时间。

3. CURDATE() CURRENT_DATE CURRENT_DATE() -- 好重复的样子
# 将当前日期按照'YYYY-MM-DD' 或YYYYMMDD 格式的值返回,具体格式根据函数用在字符串或是数字语境中而定。 
# CURDATE() +0 是返回日期的数值形式,在MSSQL中是加0天 ,这点不一样。
# 在MSSQL中的话没有直接函数返回 日期 不带时间的。需要用到CONVERT CAST转换,这点MSSQL提供不太方便。

4. CURTIME() CURRENT_TIME, CURRENT_TIME() 
# 将当前时间以'HH:MM:SS'或 HHMMSS 的格式返回, 具体格式根据函数用在字符串或是数字语境中而定

5. CURRENT_TIMESTAMP, CURRENT_TIMESTAMP() 
CURRENT_TIMESTAMP和 CURRENT_TIMESTAMP()是NOW()的同义词
LOCALTIME, LOCALTIME() 
LOCALTIME 及 LOCALTIME()和NOW()具有相同意义。
LOCALTIMESTAMP, LOCALTIMESTAMP() 
LOCALTIMESTAMP和LOCALTIMESTAMP()和NOW()具有相同意义。
# 这些都是返回当前的日期时间值。

6. DATE 返回日期部分 
#与MSSQL 的DAY()一样。

7. DATEDIFF(expr,expr2) 
# DATEDIFF() 返回起始时间 expr和结束时间expr2之间的天数。Expr和expr2 为日期或 date-and-time 表达式。计算中只用到这些值的日期部分。 
# 这个函数与MSSQL 不一样. MSSQL相对来说 要强大,可以返回的类型不一样。多了一个返回的类型

8. DATE_ADD(DATE,INTERVAL expr TYPE) DATE_SUB(DATE,INTERVAL expr TYPE) 
# 这些函数执行日期运算。 date 是一个 DATETIME 或DATE值,用来指定起始时间。 expr 是一个表达式,用来指定从起始日期添加或减去的时间间隔值。  Expr是一个字符串;对于负值的时间间隔,它可以以一个 ‘-’开头。 type 为关键词,它指示了表达式被解释的方式。  
# 关键词INTERVA及 type 分类符均不区分大小写

-- 这个与MSSQL DATEADD 类似 后面有个相应的类型

9. DATE_FORMAT(DATE,FORMAT) 
# 根据format 字符串安排date 值的格式。 这个与MSSQL 中的CONVERT 时间转换格式 类似 ,不过MYSQL这种更好点。

10. DAY(),DAYNAME()-- 这个与MSSQL一样,不过MSSQL 用的DATEPART,DATENAME 方法更好点,有个类型。

11. DAYOFMONTH DAYOFWEEK DAYOFYEAR -- 返回相应的日期 在月的第几天,周的第几天,年的第几天。

12. GET_FORMAT(DATE|TIME|DATETIME, 'EUR'|'USA'|'JIS'|'ISO'|'INTERNAL') 
#返回一个格式字符串。这个函数在同DATE_FORMAT() 及STR_TO_DATE()函数结合时很有用。
#第一个参数的3个可能值和第二个参数的5个可能值产生 15 个可能格式字符串 (对于使用的说明符,请参见DATE_FORMAT()函数说明表 )。
-- 返回一个指定的格式化字符串给 DATE_FORMAT函数用

13. LAST_DAY();
# 获取一个日期或日期时间值,返回该月最后一天对应的值。若参数无效,则返回NULL。 在MSSQL中没有此函数。要自己转换或者另写函数计算。

14. HOUR,MINUTE ,MONTH,YEAR MONTHNAME,QUARTER,SECOND,TIME #(这个MSSQL没有)
WEEK
-- 这些都与MSSQL一样的。不过MONTHNAME 是没有,包含在DATENAME中。

15. STR_TO_DATE(str,FORMAT) 
# 这是DATE_FORMAT() 函数的倒转。它获取一个字符串 str 和一个格式字符串format。若格式字符串包含日期和时间部分,
# 则 STR_TO_DATE()返回一个 DATETIME 值, 若该字符串只包含日期部分或时间部分,则返回一个 DATE 或TIME值

16 、TIMEDIFF(expr,expr2) 
TIMEDIFF() 返回起始时间 expr 和结束时间expr2 之间的时间。 expr 和expr2 为时间或 DATE-AND-TIME 表达式,两个的类型必须一样

17、WEEKDAY(DATE) 
返回date (0 = 周一, 1 = 周二, ... 6 = 周日)对应的工作日索引  WEEKDAY INDEX FOR 
mysql> SELECT WEEKDAY('1998-02-03 22:23:00');
mysql> SELECT WEEKDAY('1997-11-05');
WEEKOFYEAR(DATE) 
将该日期的阳历周以数字形式返回,范围是从1到53。它是一个兼容度函数,相当于WEEK(DATE,3)。

18、YEARWEEK(DATE), YEARWEEK(DATE,START) 
返回一个日期对应的年或周。start参数的工作同 start参数对 WEEK()的工作相同。结果中的年份可以和该年的第一周和最后一周对应的日期参数有所不同。 

-- 总体来说MYSQL的 日期函数方面某些比MSSQL强大一些,但是重复的函数太多了,不利于统一。

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn