Sqlserver获取时间格式

Sqlserver获取时间格式



---上个月月初第一天
select CONVERT(varchar(12) , DATEADD(mm,DATEDIFF(mm,0,dateadd(mm,-1,getdate())),0), 112 )
---上个月月末最后一天
select CONVERT(varchar(12),dateadd(ms,-3,DATEADD(mm,DATEDIFF(m,0,getdate()),0)), 112 )
--1. 显示本月第一天
SELECT DATEADD(mm,DATEDIFF(mm,0,getdate()),0)
select convert(datetime,convert(varchar(8),getdate(),120)+'01',120)
--2. 显示本月最后一天
select dateadd(day,-1,convert(datetime,convert(varchar(8),dateadd(month,1,getdate()),120)+'01',120))
SELECT dateadd(ms,-3,DATEADD(mm,DATEDIFF(m,0,getdate())+1,0))
--3. 上个月的最后一天
SELECT dateadd(ms,-3,DATEADD(mm,DATEDIFF(mm,0,getdate()),0))
--4. 本月的第一个星期一
select DATEADD(wk,DATEDIFF(wk,0, dateadd(dd,6-datepart(day,getdate()),getdate())),0)
--5. 本年的第一天
SELECT DATEADD(yy,DATEDIFF(yy,0,getdate()),0)
--6. 本年的最后一天
SELECT dateadd(ms,-3,DATEADD(yy,DATEDIFF(yy,0,getdate())+1,0))
--7. 去年的最后一天
SELECT dateadd(ms,-3,DATEADD(yy,DATEDIFF(yy,0,getdate()),0))
--8. 本季度的第一天
SELECT DATEADD(qq,DATEDIFF(qq,0,getdate()),0)
--9. 本周的星期一
SELECT DATEADD(wk,DATEDIFF(wk,0,getdate()),0)
--10. 查询本月的记录
select * from tableName where DATEPART(mm, theDate)=DATEPART(mm, GETDATE()) and DATEPART(yy, theDate) = DATEPART(yy, GETDATE())
--11. 查询本周的记录
select * from tableName where DATEPART(wk, theDate) = DATEPART(wk, GETDATE()) and DATEPART(yy, theDate) = DATEPART(yy, GETDATE())
--12 查询本季的记录 注:其中:GETDATE() 是获得系统时间的函数。
select * from tableName where DATEPART(qq, theDate) = DATEPART(qq, GETDATE()) and DATEPART(yy, theDate) = DATEPART(yy, GETDATE())
--13. 获取当月总天数:
select DATEDIFF(dd,getdate(),DATEADD(mm, 1, getdate()))
select datediff(day,dateadd(mm, datediff(mm,'',getdate()), ''),dateadd(mm, datediff(mm,'',getdate()), '1900-02-01'))
--14. 获取当前为星期几
SELECT DATENAME(weekday, getdate())
select CONVERT(varchar(12) , getdate(), 101 ) --12/28/2007
select CONVERT(varchar(12) , getdate(), 102 ) --2007.12.28
select CONVERT(varchar(12) , getdate(), 103 ) --28/12/2007
select CONVERT(varchar(12) , getdate(), 104 ) --28.12.2007
select CONVERT(varchar(12) , getdate(), 105 ) --28-12-2007
select CONVERT(varchar(12) , getdate(), 106 ) --28 12 2007
select CONVERT(varchar(12) , getdate(), 107 ) --12 28, 2007
select CONVERT(varchar(12) , getdate(), 108 ) --10:06:33
select CONVERT(varchar(12) , getdate(), 109 ) --12 28 2007 1
select CONVERT(varchar(12) , getdate(), 110 ) --12-28-2007
select CONVERT(varchar(12) , getdate(), 111 ) --2007/12/28
select CONVERT(varchar(12) , getdate(), 112 ) --20071228
select CONVERT(varchar(12) , getdate(), 113 ) --28 12 2007 1
select CONVERT(varchar(12) , getdate(), 114 ) --10:07:36:623
select CONVERT(varchar, getdate(), 120 ) --2007-12-28 10:08:56
select CONVERT(varchar(10), getdate(), 120 ) --2007-12-28
select replace(replace(replace(CONVERT(varchar, getdate(), 120 ),'-',''),' ',''),':','') --20071228101012 \

 

前天:Select dateadd(day,-2,getdate())

明天 :Select dateadd(day,1,getdate())

 

 

 

规则如下:

1 101 美国 mm/dd/yyyy

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

8 108 - hh:mm:ss

- 9 或 109 (*)   默认值 + 毫秒 mon dd yyyy hh:mi:ss:mmmAM(或 PM)

10 110 美国 mm-dd-yy

11 111 日本 yy/mm/dd

12 112 ISO yymmdd

- 13 或 113 (*)   欧洲默认值 + 毫秒 dd mon yyyy hh:mm:ss:mmm(24h)

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

- 20 或 120 (*)   ODBC 规范 yyyy-mm-dd hh:mm:ss[.fff]

- 21 或 121 (*)   ODBC 规范(带毫秒) yyyy-mm-dd hh:mm:ss[.fff]

- 126(***) ISO8601 yyyy-mm-dd Thh:mm:ss:mmm(不含空格)

- 130* 科威特 dd mon yyyy hh:mi:ss:mmmAM

- 131* 科威特 dd/mm/yy hh:mi:ss:mmmAM

          关于Emaker中字段的格式转换和字段间的运算代码可以加到属性里的“格式转换(读出)”和“格式转换(写入)”,table字段设定里的“字段”位置也可以灵活加函数。比如:'AF'+ID 或者ID+'/'+PWD ,convert(varchar(50),F1) ,

convert(int,%)-19110000 (读出)

convert(char(8),convert(int,%)+19110000) (写入)

实现行的合计运算等等。加入:%系统变量%,则是调用在Emaker 系统中设定的系统变量。

获取两个日期相差的天数:

 select datediff(d,'2012-05-10','2012-05-12')

 

两个字段拼接:

SELECT CAST(LastCargoNo AS VARCHAR(10))+'、'+ CAST(LastCargoName AS VARCHAR(10))  FROM Cargo

SQLServer 获取当前月份的总天数 逐过程 一看就明白  分类:  SQL Server 2009-12-10 15:36393人阅读 评论 (0) 举报

--查询当前月份的天数
--思路当前月份+1,就是下个月,然后用下个月的1号减一,就得到当前月份的最后一天,这样就知道当前月份有多少天了
--用到的函数 getdate()当前的日期 dateadd() 在年月日中进行加减操作 year()日期中的年部分 month()日期中的月部分 datepart()取出日期中的某部分
--第一步将当前期日的月部分加一
select dateadd(mm,1,getdate())
--第二步获取加一后的日期的年和月
select 年=year(dateadd(mm,1,getdate())),月=month(dateadd(mm,1,getdate()))
--第三步拼接成当前月的下一个月的1号
select convert(varchar(4),year(dateadd(mm,1,getdate())))+'-'+convert(varchar(2),month(dateadd(mm,1,getdate())))+'-01'
--第四步转成日期类型的
select 当前月的下一个月的1号=convert(datetime,convert(varchar(4),year(dateadd(mm,1,getdate())))+'-'+convert(varchar(2),month(dateadd(mm,1,getdate())))+'-01')
--第五步把上面得到的日期减一天得到当前月的最后一天
select 当前月的最后一天=dateadd(dd,-1,convert(datetime,convert(varchar(4),year(dateadd(mm,1,getdate())))+'-'+convert(varchar(2),month(dateadd(mm,1,getdate())))+'-01'))
--最后一步拿到天数
select 当前月份总天数=datepart(dd,dateadd(dd,-1,convert(datetime,convert(varchar(4),year(dateadd(mm,1,getdate())))+'-'+convert(varchar(2),month(dateadd(mm,1,getdate())))+'-01')))


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在SQL Server中,有多种函数可以用来获取当前日期和时间。以下是一些常用的SQL Server日期函数: 1. GETDATE()函数:GETDATE()函数返回当前日期和时间。它不需要任何参数,并且返回一个DATETIME数据类型的值。可以将其用作查询中的一个列或变量。例如:SELECT GETDATE() AS CurrentDate; 2. CURRENT_TIMESTAMP函数:CURRENT_TIMESTAMP函数也返回当前日期和时间,它与GETDATE()函数功能相似。也可以将其用作查询中的一个列或变量。例如:SELECT CURRENT_TIMESTAMP AS CurrentDate; 3. SYSDATETIME()函数:SYSDATETIME()函数返回当前系统日期和时间,包括毫秒。它返回一个DATETIME2数据类型的值。例如:SELECT SYSDATETIME()在SQL Server中,有多种函数可以用来获取当前日期和时间。以下是一些常用的SQL Server日期函数: 1. GETDATE()函数:GETDATE()函数返回当前日期和时间。它不需要任何参数,并且返回一个DATETIME数据类型的值。可以将其用作查询中的一个列或变量。例如:SELECT GETDATE() AS CurrentDate; 2. CURRENT_TIMESTAMP函数:CURRENT_TIMESTAMP函数也返回当前日期和时间,它与GETDATE()函数功能相似。也可以将其用作查询中的一个列或变量。例如:SELECT CURRENT_TIMESTAMP AS CurrentDate; 3. SYSDATETIME()函数:SYSDATETIME()函数返回当前系统日期和时间,包括毫秒。它返回一个DATETIME2数据类型的值。例如:SELECT SYSDATETIME() AS CurrentDate; 4. SYSDATETIMEOFFSET()函数:SYSDATETIMEOFFSET()函数返回当前系统日期和时间,包括时区偏移。它返回一个DATETIMEOFFSET数据类型的值。例如:SELECT SYSDATETIMEOFFSET() AS CurrentDate; 5. SYSUTCDATETIME()函数:SYSUTCDATETIME()函数返回当前UTC日期和时间,包括毫秒。它返回一个DATETIME2数据类型的值。例如:SELECT SYSUTCDATETIME() AS CurrentDate;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值