sqlserver获取一个时间的月份(数据库大师成长日记)

朋友们,大家在使用SQL Server数据库时,经常会碰到获取日期时间的问题,我们使用select getdate()获取当前日期时间,在查询分析器上看,返回的数据格式可能类似2018-11-17 11:08:22.970,这看上去还算是正常的。返回的格式跟本机设置的日期时间格式有一定关系。

如果服务器设置的日期时间格式比较另类,返回的日期时间格式看上去乱乱的,在程序中调用时,因为调用接口的原因,可能返回的数据格式更是乱。为了统一,有不少朋友都想直接转换成字符串格式,这样返回的时候就不存在格式乱的问题。

比如要返回xxxx-xx-xx这样的格式,可以使用SELECT CONVERT(varchar(100), GETDATE(), 23),这样就会舒服很多。我下面列出转换成字符串的多种格式。手机上直接看脚本可能会有点乱,我先截图出来,后面再上脚本:

sqlserver获取一个时间的月份(数据库大师成长日记)(1)

下面是对应的脚本:

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): 17 11 18 SELECT CONVERT(varchar(100), GETDATE(), 7): 11 17, 18 SELECT CONVERT(varchar(100), GETDATE(), 8): 11:05:44 SELECT CONVERT(varchar(100), GETDATE(), 9): 11 17 2018 11:05:37:873AM SELECT CONVERT(varchar(100), GETDATE(), 10): 11-17-18 SELECT CONVERT(varchar(100), GETDATE(), 11): 18/11/17 SELECT CONVERT(varchar(100), GETDATE(), 12): 181117 SELECT CONVERT(varchar(100), GETDATE(), 13): 17 11 2018 11:05:09:450 SELECT CONVERT(varchar(100), GETDATE(), 14): 11:05:00:750 SELECT CONVERT(varchar(100), GETDATE(), 20): 2018-11-17 11:04:53 SELECT CONVERT(varchar(100), GETDATE(), 21): 2018-11-17 11:04:46.373 SELECT CONVERT(varchar(100), GETDATE(), 22): 11/17/18 11:04:40 AM SELECT CONVERT(varchar(100), GETDATE(), 23): 2018-11-17 SELECT CONVERT(varchar(100), GETDATE(), 24): 11:04:22 SELECT CONVERT(varchar(100), GETDATE(), 25): 2018-11-17 11:04:14.437 SELECT CONVERT(varchar(100), GETDATE(), 100): 11 17 2018 11:04AM SELECT CONVERT(varchar(100), GETDATE(), 101): 11/17/2018 SELECT CONVERT(varchar(100), GETDATE(), 102): 2018.11.17 SELECT CONVERT(varchar(100), GETDATE(), 103): 17/11/2018 SELECT CONVERT(varchar(100), GETDATE(), 104): 17.11.2018 SELECT CONVERT(varchar(100), GETDATE(), 105): 17-11-2018 SELECT CONVERT(varchar(100), GETDATE(), 106): 17 11 2018 SELECT CONVERT(varchar(100), GETDATE(), 107): 11 17, 2018 SELECT CONVERT(varchar(100), GETDATE(), 108): 11:03:02 SELECT CONVERT(varchar(100), GETDATE(), 109): 11 17 2018 11:02:54:763AM SELECT CONVERT(varchar(100), GETDATE(), 110): 11-17-2018 SELECT CONVERT(varchar(100), GETDATE(), 111): 2018/11/17 SELECT CONVERT(varchar(100), GETDATE(), 112): 20181117 SELECT CONVERT(varchar(100), GETDATE(), 113): 17 11 2018 11:02:20:183 SELECT CONVERT(varchar(100), GETDATE(), 114): 11:02:11:590 SELECT CONVERT(varchar(100), GETDATE(), 120): 2018-11-17 11:02:02 SELECT CONVERT(varchar(100), GETDATE(), 121): 2018-11-17 11:01:55.340 SELECT CONVERT(varchar(100), GETDATE(), 126): 2018-11-17T11:01:45.967 SELECT CONVERT(varchar(100), GETDATE(), 130): 9 ???? ????? 1440 11:01:13:933AM SELECT CONVERT(varchar(100), GETDATE(), 131): 9/03/1440 11:01:34:153AM

有朋友会说,如果要返回xxxx年xx月xx日的格式怎么做,其实也很简单,比如下面的写法:

select cast(year(getdate()) as varchar(4)) '年' cast(month(getdate()) as varchar(2)) '月' cast(day(getdate()) as varchar(2)) '日'

这里借用了一些内置函数,转换后组合一起。

sqlserver获取一个时间的月份(数据库大师成长日记)(2)

希望对您有所帮助!

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页