SQL Server中实现时间转换的3种方法总结

程序人生 ° 2025-01-04 09:25:54编程技术
110

在数据库操作中,时间转换是一个常见的需求。无论是将字符串转换为日期时间格式,还是将日期时间格式转换为字符串,都需要灵活运用各种时间转换函数。SQL Server作为一款功能强大的关系型数据库管理系统,提供了多种时间转换的方法。本文将详细介绍SQL Server中实现时间转换的三种常用方法,帮助读者更好地掌握这一技能。

sql server.webp

第一种:format

--转化成年月日
select format( GETDATE(),'yyyy-MM-dd')
--转化年月日,时分秒,这里的HH指24小时的,hh是12小时的
select format( GETDATE(),'yyyy-MM-dd HH:mm:ss')
--转化成时分秒的,这里就不一样的,需要反斜杠来转化,所以要记一下
select format(GETDATE(),'HH\:mm\:ss')

第二种:CONVERT

SELECT CONVERT(varchar(100), GETDATE(), 0): 05 16 2006 10:57AM
SELECT CONVERT(varchar(100), GETDATE(), 1): 05/16/06
SELECT CONVERT(varchar(100), GETDATE(), 2): 06.05.16
SELECT CONVERT(varchar(100), GETDATE(), 3): 16/05/06
SELECT CONVERT(varchar(100), GETDATE(), 4): 16.05.06
SELECT CONVERT(varchar(100), GETDATE(), 5): 16-05-06
SELECT CONVERT(varchar(100), GETDATE(), 6): 16 05 06
SELECT CONVERT(varchar(100), GETDATE(), 7): 05 16, 06
SELECT CONVERT(varchar(100), GETDATE(), 8): 10:57:46
SELECT CONVERT(varchar(100), GETDATE(), 9): 05 16 2006 10:57:46:827AM
SELECT CONVERT(varchar(100), GETDATE(), 10): 05-16-06
SELECT CONVERT(varchar(100), GETDATE(), 11): 06/05/16
SELECT CONVERT(varchar(100), GETDATE(), 12): 060516
SELECT CONVERT(varchar(100), GETDATE(), 13): 16 05 2006 10:57:46:937
SELECT CONVERT(varchar(100), GETDATE(), 14): 10:57:46:967
SELECT CONVERT(varchar(100), GETDATE(), 20): 2006-05-16 10:57:47
SELECT CONVERT(varchar(100), GETDATE(), 21): 2006-05-16 10:57:47.157
SELECT CONVERT(varchar(100), GETDATE(), 22): 05/16/06 10:57:47 AM
SELECT CONVERT(varchar(100), GETDATE(), 23): 2006-05-16
SELECT CONVERT(varchar(100), GETDATE(), 24): 10:57:47
SELECT CONVERT(varchar(100), GETDATE(), 25): 2006-05-16 10:57:47.250
SELECT CONVERT(varchar(100), GETDATE(), 100): 05 16 2006 10:57AM
SELECT CONVERT(varchar(100), GETDATE(), 101): 05/16/2006
SELECT CONVERT(varchar(100), GETDATE(), 102): 2006.05.16
SELECT CONVERT(varchar(100), GETDATE(), 103): 16/05/2006
SELECT CONVERT(varchar(100), GETDATE(), 104): 16.05.2006
SELECT CONVERT(varchar(100), GETDATE(), 105): 16-05-2006
SELECT CONVERT(varchar(100), GETDATE(), 106): 16 05 2006
SELECT CONVERT(varchar(100), GETDATE(), 107): 05 16, 2006
SELECT CONVERT(varchar(100), GETDATE(), 108): 10:57:49
SELECT CONVERT(varchar(100), GETDATE(), 109): 05 16 2006 10:57:49:437AM
SELECT CONVERT(varchar(100), GETDATE(), 110): 05-16-2006
SELECT CONVERT(varchar(100), GETDATE(), 111): 2006/05/16
SELECT CONVERT(varchar(100), GETDATE(), 112): 20060516
SELECT CONVERT(varchar(100), GETDATE(), 113): 16 05 2006 10:57:49:513
SELECT CONVERT(varchar(100), GETDATE(), 114): 10:57:49:547
SELECT CONVERT(varchar(100), GETDATE(), 120): 2006-05-16 10:57:49
SELECT CONVERT(varchar(100), GETDATE(), 121): 2006

第三种:DATEADD()

语法:DATEADD(datepart,number,date)
参数:

  • date 参数是合法的日期表达式,类型可以是datetime、smalldatetime、char。

  • number 是您希望添加的间隔数,最好是整数;对于未来的时间,此数是正数,对于过去的时间,此数是负数。

  • datepart 参数可以是下面表格的值。

datepart
年份(year) yy , yyyy , year
季度(quarter) qq , q , quarter
月份(month) mm , m , month
年中的日(day of year) dy, y
日(day) dd , d , day
周(week) wk , ww , week
星期(weekday) dw, w
小时(hour) hh , hour
分钟(minute) mi , n , minute
秒(second) ss , s , second
毫秒(millisecond ms
微秒(microsecond) mcs
纳秒(nanosecond) ns
  • 具体用法如下:

1.实现秒加减
--减100秒
SELECT DATEADD(ss,-100,'2024-07-03')
SELECT DATEADD(s,-100,'2024-07-03')
SELECT DATEADD(second,-100,'2024-07-03')
--加100秒
SELECT DATEADD(ss,100,'2024-07-03')
SELECT DATEADD(s,100,'2024-07-03')
SELECT DATEADD(second,100,'2024-07-03')
2.实现分钟加减
--减1分钟
SELECT DATEADD(mi,-1,'2024-07-03')
SELECT DATEADD(n,-1,'2024-07-03')
SELECT DATEADD(minute,-1,'2024-07-03')
--加1分钟
SELECT DATEADD(mi,1,'2024-07-03')
SELECT DATEADD(n,1,'2024-07-03')
SELECT DATEADD(minute,1,'2024-07-03')
3.实现小时加减
--减1小时
SELECT DATEADD(hh,-1,'2024-07-03')
SELECT DATEADD(hour,-1,'2024-07-03')
--加1小时
SELECT DATEADD(hh,1,'2024-07-03')
SELECT DATEADD(hour,1,'2024-07-03')
4.实现日加减
--减1天
SELECT DATEADD(dd,-1,'2024-07-03')
SELECT DATEADD(d,-1,'2024-07-03')
SELECT DATEADD(day,-1,'2024-07-03')
--加1天
SELECT DATEADD(dd,1,'2024-07-03')
SELECT DATEADD(d,1,'2024-07-03')
SELECT DATEADD(day,1,'2024-07-03')
5.实现周加减
--减1周
SELECT DATEADD(ww,-1,'2024-07-03')
SELECT DATEADD(wk,-1,'2024-07-03')
SELECT DATEADD(week,-1,'2024-07-03')
--加1周
SELECT DATEADD(ww,1,'2024-07-03')
SELECT DATEADD(ww,1,'2024-07-03')
SELECT DATEADD(ww,1,'2024-07-03')
6.实现月份加减
--减1月
SELECT DATEADD(m,-1,'2024-07-03')
SELECT DATEADD(mm,-1,'2024-07-03')
SELECT DATEADD(month,-1,'2024-07-03')
--加1月
SELECT DATEADD(m,1,'2024-07-03')
SELECT DATEADD(mm,1,'2024-07-03')
SELECT DATEADD(month,1,'2024-07-03')
7.实现季度加减
--减1季度
SELECT DATEADD(q,-1,'2024-07-03')
SELECT DATEADD(qq,-1,'2024-07-03')
SELECT DATEADD(quarter,-1,'2024-07-03')
--加1季度
SELECT DATEADD(q,1,'2024-07-03')
SELECT DATEADD(qq,1,'2024-07-03')
SELECT DATEADD(quarter,1,'2024-07-03')
8.实现年份加减
--减1年
SELECT DATEADD(yy,-1,'2024-07-03')
SELECT DATEADD(yyyy,-1,'2024-07-03')
SELECT DATEADD(year,-1,'2024-07-03')
--加1年
SELECT DATEADD(yy,1,'2024-07-03')
SELECT DATEADD(yyyy,1,'2024-07-03')
SELECT DATEADD(year,1,'2024-07-03')

总结

通过本文的介绍,我们可以看到SQL Server中实现时间转换的三种常用方法:CONVERT函数、DATEADD函数和FORMAT函数。每种方法都有其独特的优点和适用场景。掌握这些时间转换技巧,将有助于我们在实际工作中编写出更加高效和简洁的SQL代码。希望本文的内容能够对读者有所帮助,欢迎大家在评论区分享自己的经验和见解。

sql server 时间转换
THE END
蜜芽
故事不长,也不难讲,四字概括,毫无意义。

相关推荐

Microsoft SQL Server 2012 数据库安装图文教程
Microsoft SQL Server 2012 是一款功能强大且广泛使用的数据库管理系统。正确安装和配置数据库是确保系统稳定运行的关键步骤。本文将通过详细的图文教程,指导您如何在Window...
2024-12-13 编程技术
126

MySQL无法连接报:Can't connect to MySQL server on localhost (10061)的解决方法
在数据库管理和应用开发中,连接MySQL服务器是必不可少的一步。然而,有时我们会遇到无法连接MySQL服务器的问题,其中最常见的错误之一就是“ERROR 2003 (HY000): Can't...
2024-11-12 编程技术
218