sql时间小问题汇总
做一个项目的时候经常会遇到各种各样的时间问题需要处理,有些函数经常会忘记,翻阅一些资料,加上自己的需求,简单的总结记忆一下基础知识,方便以后使用
一.convert函数
简单用法:
- 查询某天的数据
- 非:PublishTime=@PublishTime
- 而应:select * from Meeting where convert(varchar(10),PublishTime,121))=@PublishTime
分析:比如为@PubilishTime提供参数‘2011-04-18’,经过抓花之后,实际上相当于查询PubilishTime=2011-04-18 00:00:00 ,从而不会得出真实的当天数据。
注:convert一般用的也比较少,因为一般的时候时间列都建立有非聚集索引,convert函数会使数据库认为放弃按照时间索引的方式进行数据查询,在一些数据量非常大的数据表里,这种查询是非常影响性能的。
时间的一些转换格式:
- select Convert(varchar(10),getdate(),120)
- 2011-05-12
- select CONVERT(varchar, getdate(), 120 )
- 2011-05-12 11:06:08
- select replace(replace(replace(CONVERT(varchar, getdate(),
- select CONVERT(varchar(12) , getdate(), 111 )
- 2011/05/12
- select CONVERT(varchar(12) , getdate(), 112 )
- 20110512
- select CONVERT(varchar(12) , getdate(), 102 )
- 2011.05.12
- select CONVERT(varchar(12) , getdate(), 103 )
- 12/09/2004
- select CONVERT(varchar(12) , getdate(), 104 )
- 12.05.2011
- select CONVERT(varchar(12) , getdate(), 105 )
- 12-05-2011
- select CONVERT(varchar(12) , getdate(), 106 )
- 12 05 2011
- select CONVERT(varchar(12) , getdate(), 108 )
- 11:06:08
- select CONVERT(varchar(12) , getdate(), 110 )
- 09-12-2011
二。简单一些函数
(1)查询年.月.日
- select year(getdate())--年
- select month(getdate())--月
- select day(getdate())--日
(2)查询每周的数据
- SELECT * FROM HW_SRDH WHERE datediff(week,SRSJ,getdate())=0 --本周数据
- SELECT * FROM HW_SRDH WHERE datediff(week,SRSJ,getdate())=1 --上周数据
(3)日期加法
- select dateadd(month,2,getdate()) --加两月
- select dateadd(day,2,getdate()) --加两天
(4)查询两端日期之间的天数
- select datediff(day,'2011-09-01','2011-09-18')
(5)得到一个日期的年份
- SELECT DATEPART(year, '2004-10-15')
(6)返回平年还是闰年
- SELECT
- case
- day(dateadd(mm, 2, dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate()), 0))))
- when 28
- then '平年'
- else '闰年'
- end
(7)返回指定日期是星期几。
- SELECT datename(weekday, getdate())
(8)返回当前日期是当年第多少周
- select 本年第多少周=datename(week, getdate())
(9)
- --1.一个月第一天的
- SELECT DATEADD(mm, DATEDIFF(mm,0,getdate()), 0)
- --2.本周的星期一
- SELECT DATEADD(wk, DATEDIFF(wk,0,getdate()), 0)
- select dateadd(wk,datediff(wk,0,getdate()),6)
- --3.一年的第一天
- SELECT DATEADD(yy, DATEDIFF(yy,0,getdate()), 0)
- --4.季度的第一天
- SELECT DATEADD(qq, DATEDIFF(qq,0,getdate()), 0)
转载于:https://blog.51cto.com/1890146/547847
sql时间小问题汇总相关推荐
- php 预处理 防注入,PHP防止sql注入小技巧之sql预处理原理与实现方法分析
本文实例讲述了PHP防止sql注入小技巧之sql预处理原理与实现方法.分享给大家供大家参考,具体如下: 我们可以把sql预处理看作是想要运行的 SQL 的一种编译过的模板,它可以使用变量参数进行定制. ...
- alias常见小问题汇总20例
alias常见小问题汇总20例 1.alias里的各种物体怎么对齐? 使用一条线(或是格点)和PIVOT来搬移对象对齐即可 ALIAS不像RHINO等其它软件提供某些快速的ICON指令 不过他强大的编 ...
- oracle ebs form 计算 汇总公式,Oracle+EBS+Form开发小技巧汇总
oracle form开发的技巧 content Oracle EBS Form开发小技巧汇总 ..................................... 2 Form中Block的重 ...
- linux高可用小知识点汇总-行云管家
不少运维小伙伴对于linux高可用相关知识不是很了解,今天我们小编就给大家汇总了一些,希望可以加深大家的了解.仅供参考哦! linux高可用小知识点汇总-行云管家 一.Linux是什么系统? [回答] ...
- 电脑知识 小技巧汇总
小技巧汇总 我综合了网上的有关软件应用的小巧和自己的几个,希望对大家有用,如果你有更好的请跟帖子大家共分享!有关注册表修改的,请先备份注册表! 1. 影音文件在xp中无法删除 很多情况下是因为预览功能 ...
- Hive SQL时间函数及用法
Hive SQL时间函数 当前官方提供的日期函数共27个,内容如下: 1. 获取当前系统时间 函数: current_timestamp 返回值:timestamp 返回查询计算开始时的当前时间戳(从 ...
- python tkinter 小部件汇总
tkinter 小部件汇总,自己总结的.备用. # !/usr/bin/env python # -*- coding:utf-8 -*- # 随波逐流:tkinter 小部件汇总from tkint ...
- 绝地求生8月7号服务器维修吗,绝地求生8月7日更新时间更新内容汇总 绝地求生吃鸡8.7更新维护公告一览...
原标题:绝地求生8月7日更新时间更新内容汇总 绝地求生吃鸡8.7更新维护公告一览 绝地求生在2019年8月7日进行了无停机维护,本次维护的内容是优化服务器以及修复BUG,大家知道具体的更新内容吗?下面 ...
- 数据库 SQL 时间处理函数 获取指定或最近期时间范围内 日期 月份 年份 列表
1.Oracle Oracle sql 获取 时间 https://blog.csdn.net/rexueqingchun/article/details/83412131 原 Oracle查询今天 ...
最新文章
- cat6 万兆_cat6 万兆
- int是python的内置函数吗_Python内置int函数详细介绍
- 添加游戏到游戏浏览器中的小工具
- 模态框分页java代码_ajax分页效果(bootstrap模态框)
- python在线学习直播-一对多直播系统开发,百万用户在线,直播弹幕系统是如何实现的?...
- python中response对象的属性_关于python:AttributeError:’HTTPResponse’对象没有属性’split’...
- springboot 文件上传大小配置
- 【贪心算法】跳跃游戏
- 洛谷 P5602 小E与美食 (尚贤)
- html中的reset(重置)按钮
- 为什么要发布海外新闻稿,海外稿件怎么写
- 地下城与勇士(DNF)安图恩副本(黑雾之源、震颤的大地、舰炮防御战、擎天之柱、能量阻截战、黑色火山、安徒恩的心脏)(童年的回忆)
- 案例:恒丰银行——大数据实时流处理平台
- 在PS中如何设计个人logo
- Caused by: java.lang.NoSuchMethodError
- android手机管理器在哪里打开,小米手机任务管理器在哪?怎么打开?
- 论学习和工作的最大区别
- p站自动收藏画作 post请求,request payload
- itext给已有pdf添加页眉页脚
- 3.云计算基础篇---云计算优势