SQL获取年月日时分秒的方法

方法一:利用DATENAME

在SQL数据库中,DATENAME(datetype,date)函数的作用是从日期中提取指定部分数据,其返回类型是nvarchar.datetype类型见附表1.

SELECT DATENAME(year,GETDATE())+'-'+ DATENAME(MONTH,GETDATE())+'-'+ DATENAME(DAY,GETDATE())
SELECT DATENAME(yyyy,GETDATE())+'-'+ DATENAME(MM,GETDATE())+'-'+ DATENAME(dd,GETDATE())

附表1

日期部分
缩写
year yy, yyyy        
quarter qq, q
month mm,m
dayofyear dy, y
day dd,d
week wk,ww
weeekday dw
hour hh
minute mi,n
second ss,s
millisecond ms

 


方法二:利用CONVERT

CONVERT(type(length),date,style) 函数是把日期转换为新数据类型的通用函数,可以用不同的格式显示日期/时间数据。style类型见附表2,另附件3为CONVERT()用法

SELECT CONVERT(VARCHAR(20),YEAR(GETDATE())) +'-'+ CONVERT(VARCHAR(20),MONTH(GETDATE()))+'-'+ CONVERT(VARCHAR(20),DAY(GETDATE()))
SELECT CONVERT(VARCHAR(20),GETDATE(),23)

下面说两种计算结果不能发生错误方法:

SELECT  YEAR(GETDATE()) +'-'+  MONTH(GETDATE()) +'-'+  DAY(GETDATE()) 
SELECT DATEPART(yyyy,GETDATE())+'-'+ DATEPART(MM,GETDATE())+'-'+ DATEPART(dd,GETDATE())

因为YEAR(),MONTH(),DAY(),DATEPART()返回值都是INT类型,所以结果是相加的和。

不会关心中间  ‘-’  的值,如下:

SELECT  1+ '-'+  2 +'-'+ 3
SELECT  1+ 2 + 3

 

 

附表2

style(2位表年份)   style(4位表年份)        Style 格式
  100或0 mon dd yyyy hh:miAM (或者 PM)
1 101 美国 mm/dd/yy
2 102 ANSI yy.mm.dd
3 103 英法 dd/mm/yy
4 104 德国 dd.mm.yy
5 105 意大利 dd-mm-yy
6 106 dd mon yy
7 107 Mon dd, yy
  108或8或24 hh:mm:ss(无年份月日)
  109或9 mon dd yyyy hh:mi:ss:mmmAM(或者 PM)   
10 110 美国 mm-dd-yy     
11 111 日本 yy/mm/dd
12 112 ISO yymmdd
  113或13 欧洲默认 dd mon yyyy hh:mm:ss:mmm(24h)
14 114 hh:mi:ss:mmm(24h)(无年份月日)
  120或20 ODBC yyyy-mm-dd hh:mi:ss(24h)
  121或21或25 yyyy-mm-dd hh:mi:ss.mmm(24h)
  23 yyyy-mm-dd
  126 yyyy-mm-ddThh:mm:ss.mmm(没有空格)
  130 dd mon yyyy hh:mi:ss:mmmAM
  131 dd/mm/yy hh:mi:ss:mmmAM

 

附件3 CONVERT()用法

复制代码
SELECT CONVERT(varchar(100), GETDATE(), 0)--  08 25 2017 10:26AM
SELECT CONVERT(varchar(100), GETDATE(), 100)--08 25 2017 10:26AM
SELECT CONVERT(varchar(100), GETDATE(), 1)--  08/25/17
SELECT CONVERT(varchar(100), GETDATE(), 101)--08/25/2017
SELECT CONVERT(varchar(100), GETDATE(), 2)--  17.08.25
SELECT CONVERT(varchar(100), GETDATE(), 102)--2017.08.25
SELECT CONVERT(varchar(100), GETDATE(), 3)--  25/08/17
SELECT CONVERT(varchar(100), GETDATE(), 103)--25/08/2017
SELECT CONVERT(varchar(100), GETDATE(), 4)--  25.08.17
SELECT CONVERT(varchar(100), GETDATE(), 104)--25.08.2017
SELECT CONVERT(varchar(100), GETDATE(), 5)--  25-08-17
SELECT CONVERT(varchar(100), GETDATE(), 105)--25-08-2017
SELECT CONVERT(varchar(100), GETDATE(), 6)--  25 08 17
SELECT CONVERT(varchar(100), GETDATE(), 106)--25 08 2017
SELECT CONVERT(varchar(100), GETDATE(), 7)--  08 25, 17
SELECT CONVERT(varchar(100), GETDATE(), 107)--08 25, 2017
SELECT CONVERT(varchar(100), GETDATE(), 8)--  10:25:11
SELECT CONVERT(varchar(100), GETDATE(), 108)--10:25:11
SELECT CONVERT(varchar(100), GETDATE(), 9)--  08 25 2017 10:25:54:397AM
SELECT CONVERT(varchar(100), GETDATE(), 109)--08 25 2017 10:25:54:397AM
SELECT CONVERT(varchar(100), GETDATE(), 10)-- 08-25-17
SELECT CONVERT(varchar(100), GETDATE(), 110)--08-25-2017
SELECT CONVERT(varchar(100), GETDATE(), 11)-- 17/08/25
SELECT CONVERT(varchar(100), GETDATE(), 111)--2017/08/25
SELECT CONVERT(varchar(100), GETDATE(), 12)-- 170825
SELECT CONVERT(varchar(100), GETDATE(), 112)--20170825
SELECT CONVERT(varchar(100), GETDATE(), 13)-- 25 08 2017 10:30:25:533
SELECT CONVERT(varchar(100), GETDATE(), 113)--25 08 2017 10:30:25:533
SELECT CONVERT(varchar(100), GETDATE(), 14)-- 10:31:18:553
SELECT CONVERT(varchar(100), GETDATE(), 114)--10:31:18:553
SELECT CONVERT(varchar(100), GETDATE(), 20)-- 2017-08-25 10:31:18
SELECT CONVERT(varchar(100), GETDATE(), 120)--2017-08-25 10:31:18
SELECT CONVERT(varchar(100), GETDATE(), 21)-- 2017-08-25 10:32:22.950
SELECT CONVERT(varchar(100), GETDATE(), 121)--2017-08-25 10:32:22.950
SELECT CONVERT(varchar(100), GETDATE(), 22)-- 08/25/17 10:32:22 AM
SELECT CONVERT(varchar(100), GETDATE(), 23)-- 2017-08-25
SELECT CONVERT(varchar(100), DATEADD(hh,12,GETDATE()), 8)--  10:25:11
SELECT CONVERT(varchar(100), DATEADD(hh,12,GETDATE()), 108)--10:25:11
SELECT CONVERT(varchar(100), DATEADD(hh,12,GETDATE()), 24)-- 10:33:38
SELECT CONVERT(varchar(100), DATEADD(hh,12,GETDATE()), 21)-- 2017-08-25 10:32:22.950
SELECT CONVERT(varchar(100), DATEADD(hh,12,GETDATE()), 121)--2017-08-25 10:32:22.950
SELECT CONVERT(varchar(100), DATEADD(hh,12,GETDATE()), 25)-- 2017-08-25 10:33:49.947
SELECT CONVERT(varchar(100), GETDATE(), 126)--2017-08-25T10:34:39.913
SELECT CONVERT(varchar(100), GETDATE(), 130)--3 ?? ????? 1438 10:34:52:140AM
SELECT CONVERT(varchar(100), GETDATE(), 131)--3/12/1438 10:35:01:460AM
复制代码

 

 

出处:https://blog.csdn.net/ugug654/article/details/77600218

posted on   jack_Meng  阅读(7800)  评论(0编辑  收藏  举报

编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
历史上的今天:
2020-04-30 Maven系列教程
2020-04-30 ecplice 如何智能提示
2020-04-30 在同步方法里面调用异步方法,线程饥饿导致的线程池死锁
2020-04-30 Eclipse中的工作空间介绍(Workspace)
2019-04-30 winform 多线程中ShowDialog()模式窗口无效的解决办法
2014-04-30 Oracle按时间段分组统计
2014-04-30 Oracle按不同时间分组统计

导航

< 2025年3月 >
23 24 25 26 27 28 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 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示

喜欢请打赏

扫描二维码打赏

支付宝打赏

主题色彩