可用自带的函数month来实现
如:
创建表及插入数据:
create table test (id int,begindate datetime)
insert into test values (1,'2015-01-01')
insert into test values (2,'2015-02-01')
执行sql语句,获取月份:
select MONTH(begindate) as month from test
执行结果:
执行sql语句,获取年份YEAR:
select id,YEAR(begindate) as year from test
执行结果:
MySQL Now ()函数和SQL Server GetDate ()函数的区别
区别 MySQL Now ()函数和SQL Server GetDate ()函数非常相似,它们可以用于获取当前系统时间,格式化当前日期时间的输出版本,并从当前日期时间中提取特定部分。
但是,它们之间存在以下区别:
MySQL的Now ()函数返回当前系统日期和时间戳,它返回的值精确到秒级别,
而SQL Server的GetDate ()函数返回更精确的时间戳,它返回的值精确到毫秒级别。
MySQL Now ()函数的结果是DATETIME类型,
而SQL Server GetDate ()函数的结果是DATETIME2类型。
1,获取当前日期
select getdate()
2,convert函数格式化
Convert 函数是用于将数据从一种类型转换为另一种类型的函数。当需要在SQL Server中改变数据类型或者需要以特定格式显示日期/时间数据时,CONVERT()函数非常有用,
该函数的基本语法如下:
CONVERT(data_type(length), expression, style)
其中,data_type(length)指定目标数据类型和长度,expression是要转换的值,而style则定义了日期/时间的输出格式。
例如,如果你想获取当前日期并以 年-月-日 时:分:秒 的格式显示,可以使用以下SQL语句
SELECT CONVERT(VARCHAR(50), GETDATE(), 20)
输出结果可能类似于:2021-04-15 13:45:35。
此外,还可以使用不同的 style 值来改变日期/时间的显示格式。例如,如果你想以 年/月/日 时:分:秒 的格式显示当前日期和时间,可以使用以下SQL语句2:
SELECT CONVERT(VARCHAR(50), GETDATE(), 111) + ' ' +
CONVERT(VARCHAR(50), GETDATE(), 108)
输出结果可能类似于:2021/04/15 13:47:45。
select convert(varchar,getdate(),120)
Convert 函数支持多种不同的 style 值,每个值都对应不同的日期和时间格式。这使得 CONVERT() 函数成为在处理SQL Server中的日期和时间数据时非常灵活和强大的工具
convert函数的最后一个参数style 可以有 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,100,
101,102,103,104,105,106,107,108,109,110,111,112,113,114,120,121,126,127,130,131等
常用的 20,23,24,102,111,112,120等
select CONVERT(varchar,GETDATE(),20) --2018-04-23 14:44:22
select CONVERT(varchar,GETDATE(),23) --2018-04-23
select CONVERT(varchar,GETDATE(),24) --14:44:22
select CONVERT(varchar,GETDATE(),102) --2018.04.23
select CONVERT(varchar,GETDATE(),111) --2018/04/23
select CONVERT(varchar,GETDATE(),112) --20180423
3,获取当前年
select datename(YYYY,getdate())
select datename(Year,getdate())
select datepart(YYYY,getdate())
select datepart(Year,getdate())
select year(时间字段名)
3,获取当前月 --05 或5
select datename(MM,getdate()) --04
select datename(Month,getdate()) --04
select datepart(MM,getdate()) --4
select datepart(Month,getdate()) --4
select Month(时间字段名) --4
4,获取当前日期
select datename(day,getdate()) --05
select datename(d,getdate()) --05
select datename(dd,getdate()) --05
select datepart(dd,getdate()) 5
select datepart(dd,getdate()) 5
select datepart(day,getdate()) 5
select day(时间字段名)
5,获取当前年月
select CONVERT(varchar(6),GETDATE(),112) --201804
select CONVERT(varchar(7),GETDATE(),120) --201804
6,获取当前年月日
select CONVERT(varchar(8),GETDATE(),112) --20180423
select CONVERT(varchar(10),GETDATE(),120) --2018-04-23
字符串转日期:
select CONVERT(datetime,'2018-04-23',20)
mysql日期和字符相互转换方法
date_format(date,'%Y-%m-%d') -------------->oracle中的to_char();
TO_CHAR(date,'yyyy')=1987 替换成
date_format(date,'%YYYY')=1987,注意是大写的Y,还加了%
str_to_date(date,'%Y-%m-%d') -------------->oracle中的to_date();