sql server日期相关函数
2020-05-03 17:20 youxin 阅读(447) 评论(0) 编辑 收藏 举报
选择昨天:
DECLARE @Yesterday date
SET @Yesterday = DATEADD(DAY,-1,GETDATE())
输出:
2020-05-02
把date转成数字:
-- 获取时间
SET @Yesterday = DATEADD(DAY,-1,GETDATE())
SET @DateID = CAST(CAST(@Yesterday AS FLOAT) AS INT)
GetDate()函数
SELECT GETDATE() AS CurrentDateTime
结果:
CurrentDateTime
2008-12-29 16:25:46.635
注释:上面的时间部分精确到毫秒。
datepart函数:
Datepart():返回代表指定日期的指定日期部分的整数
语法:Datepart(datepart,date) 返回类型:int
SELECT DATEPART(yyyy,create_at) AS OrderYear,
DATEPART(mm,create_at) AS OrderMonth,
DATEPART(dd,create_at) AS OrderDay
FROM xxx
WHERE id=10
SQL server从datetime提取年月日
需要用到convert函数:
定义和用法
CONVERT() 函数是把日期转换为新数据类型的通用函数。
CONVERT() 函数可以用不同的格式显示日期/时间数据。
语法
CONVERT(data_type(length),data_to_be_converted,style)
data_type(length) 规定目标数据类型(带有可选的长度)。data_to_be_converted 含有需要转换的值。style 规定日期/时间的输出格式。
可以使用的 style 值:
120 或者 20 yyyy-mm-dd hh:mi:ss(24h)
我们只想要提取yyyy--mm-dd,用:
select convert(varchar(10),create_at,120) from xxx where id=10 (长度为10截取前10位)
想要带上时分秒:
select convert(varchar,create_at,120) from xxx where id=10
2020-04-29 16:46:43
只想要年月:
--按月
select convert(nvarchar(7),GETDATE(),120)
2020-04
利用cursor修改数据
DECLARE @beforeday2 varchar(10)
DECLARE @beforeday1 varchar(10)
select @beforeday2 =convert(varchar(10) , DATEADD(DAY,-2,getdate()) ,120) -- 2天qian
select @beforeday1 =convert(varchar(10) , DATEADD(DAY,-1,getdate()) ,120) -- 2天qian
DECLARE @curr_userid int
declare @curr_score decimal(18, 2)
DECLARE curr_cursor CURSOR FOR
select userid, sum(xx) from xxx where convert(varchar(10) , create_at ,120) between @beforeday2 and @beforeday1 GROUP BY userid
OPEN curr_cursor
FETCH NEXT FROM curr_cursor INTO @curr_userid,@curr_score
while ( @@FETCH_STATUS=0)
BEGIN
update ORDER set xx= @curr_score where UserID = @curr_userid -
FETCH NEXT FROM curr_cursor INTO @curr_userid,@curr_score
END
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
2012-05-03 c++流迭代器