sql 日期分别提取年月

sql 日期分别提取年月,第1张

因为这个时候time是datetime类型,left是针对字符串的 *** 作,先把time转换为字符串就可以了

select left(convert(varchar,getdate(),21),7)

SELECT

'Next year' AS date_title,

ADD_MONTHS(sysdate,12) AS date_value

FROM dual

就是把 指定日期, 增加12个月

如果要强制加 365天

就是 sysdate + 365

也就是 日期类型的 直接 + 365

/

思路:首先把某日期的月份加一,再把结果的日期减一

/

DECLARE @Date AS DATETIME

DECLARE @DateChar AS nVarChar(19)

--给日期赋值

SET @Date = GetDate()

--返回你需要的

SET @DateChar = CONVERT(Char(8), @Date, 120) + '01 00:00:00'

SELECT DATEADD(d, -1, DATEADD(m, 1, CAST(@DateChar AS DATETIME)))

GETDATE() 函数从 SQL Server 返回当前的时间和日期。

使用下面的 SELECT 语句:

SELECT GETDATE() AS CurrentDateTime

结果:

CurrentDateTime

2008-12-29 16:25:46635

注释:上面的时间部分精确到毫秒。

例子 2

下面的 SQL 创建带有日期时间列 (OrderDate) 的 "Orders" 表:

CREATE TABLE Orders

(

OrderId int NOT NULL PRIMARY KEY,

ProductName varchar(50) NOT NULL,

OrderDate datetime NOT NULL DEFAULT GETDATE()

)

请注意,OrderDate 把 GETDATE() 规定为默认值。结果是,当您在表中插入新行时,当前日期和时间自动插入列中。

现在,我们希望在 "Orders" 表中插入一条记录:

INSERT INTO Orders (ProductName) VALUES ('Computer')

"Orders" 表将成为这样:

OrderId ProductName OrderDate

1 'Computer' 2008-12-29 16:25:46635

在SQL Server里有个getdate()的函数是用来获取日期的,不过精确到秒,比如查询select getdate();

出来的结果为2009-02-26 15:57:35357,一般用的比较多的是只获取日期,并不需要时间,这时候就需要用到convert函数了。

在函数CONVERT()中你可以使用许多种不同风格的日期和时间格式。下表显示了所有的格式。

日期和时间的类型:

类型值 标准 输出

0 Default mon dd yyyy hh:miAM

1 USA mm/dd/yy

2 ANSI yymmdd

3 British/French dd/mm/yy

4 German ddmmyy

5 Italian dd-mm-yy

6 - dd mon yy

7 - mon dd,yy

8 - hh:mi:ss

9 Default + milliseconds--mon dd yyyy hh:mi:ss:mmmAM(or )

10 USA mm-dd-yy

11 JAPAN yy/mm/dd

12 ISO yymmdd

13 Europe Default + milliseconds--dd mon yyyy

hh:mi:ss:mmm(24h)

14 - hh:mi:ss:mmm(24h)

类型0,9,和13总是返回四位的年。对其它类型,要显示世纪,把style值加上100。类型13和14返回24小时时钟的时间。类型0,7,和13返回的月份用三位字符表示(用Nov代表November)

对表中所列的每一种格式,你可以把类型值加上100来显示有世纪的年(例如,00年将显示为2000年)。例如,要按日本标准显示日期,包括世纪,你应使用如下的语句:

SELECT CONVERT(VARCHAR(30),GETDATE(),111)

在这个例子中,函数CONVERT()把日期格式进行转换,显示为1997/11/30

方法:

select convert(varchar(8),getdate(),112)

--------

20090226

select convert(varchar(10),getdate(),120)

-----------

2009-02-26

补充:

1、这里的varchar(10),指的是获取的字符段的个数,比如原本是2009-02-26 15:57:35357,为了只获取2009-02-26字段,算了下,一共10个字符,所以选择varchar(10),又比如为varchar(7),则为2009-02。

2、convert(varchar(10),getdate(),120)里的120是显示日期的格式。

用 replace('2007053019:10:00',':','');替换:号

以上就是关于sql 日期分别提取年月全部的内容,包括:sql 日期分别提取年月、sql 中如何知道2010-1-18日的下一年的日期是什么日期时隔一年、用SQL获取某个某年某个月份的最后一天的日期等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9608791.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存