TSQL取时间的年月日

摘要:
通常以SQL Server的日期时间格式保存的数据有小时、分钟、秒等。

经常保存在SQL Server的datetime格式的数据都是带有时、分、秒等的。但是在页面读取的时候,通知只需要年月日,

今天用到的读取时间年月日的方法如下:

  1. convert(varchar(12),时间列名,111)  

如在数据表table1中的列 operdate是datetime格式的,需要读取operdate的年月日的方法就是

  1. select convert(varchar(12),operdate,111) from table1  

-=================================================

--SQL中取得時間的一些技巧
--*********時間精確3毫秒*****************
--=================================================
SELECT DATEADD(mm, DATEDIFF(mm,0,getdate()), 0)

select DATEDIFF(mm,0,getdate())

SELECT DATEADD(wk, DATEDIFF(wk,0,getdate()), 0)
SELECT DATEADD(yy, DATEDIFF(yy,0,getdate()), 0)
SELECT DATEADD(qq, DATEDIFF(qq,0,getdate()), 0)


--------------當天半夜--------------------------------------------
SELECT DATEADD(dd, DATEDIFF(dd,0,getdate()), 0)

--------------最後一天--------------------------------------------
SELECT dateadd(ms,-3,DATEADD(mm, DATEDIFF(mm,0,getdate()), 0))
SELECT dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate()), 0))
SELECT dateadd(ms,-3,DATEADD(mm, DATEDIFF(m,0,getdate())+1, 0))
SELECT dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate())+1, 0))

select DATEADD(wk, DATEDIFF(wk,0,dateadd(dd,6-datepart(day,getdate()),getdate())),0)


----------去掉時分秒----------------------------
declare @a datetime
set @a = getdate()
SELECT @a,DATEADD(day,DATEDIFF(day,0,@a),0)
  
----------顯示星期幾----------------------------
select datename(weekday,getdate())
  
----------如何取得某個月天數-------------------
declare @m int
set @m=3 --月份
select datediff(day,'2006-'+cast(@m as varchar)+'-15' ,'2006-'+cast(@m+1 as varchar)+'-15')
  
----------或者使用計算本月的最後一天的腳本,然後用DAY函數區最後一天
SELECT Day(dateadd(ms,-3,DATEADD(mm, DATEDIFF(m,0,getdate())+1, 0)))

----------判斷是否閏年:------------------------
SELECT case day(dateadd(mm, 2, dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate()), 0)))) when 28 then '平

年' else '閏年' end

select case datediff(day,datename(year,getdate())+'-02-01',dateadd(mm,1,datename(year,getdate())+'-02-

01'))
when 28 then '平年' else '閏年' end
  
----------一個季度多少天------------------------
declare @m tinyint,@time smalldatetime
select @m=month(getdate())
select @m=case when @m between 1 and 3 then 1
when @m between 4 and 6 then 4
when @m between 7 and 9 then 7
else 10 end
select @time=datename(year,getdate())+'-'+convert(varchar(10),@m)+'-01'
select datediff(day,@time,dateadd(mm,3,@time))


SELECT CONVERT(VARCHAR(8), DATEADD(m, DATEDIFF(m, '', getdate()), ''), 112) AS [月初]
select CONVERT(VARCHAR(8), DATEADD(m, -3, getdate()), 112) AS [三個月前]

免责声明:文章转载自《TSQL取时间的年月日》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇还不习惯Office 2007nginx惊群问题下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Oracle表空间知识

Oracle表空间知识 一,创建临时表空间 CREATE temporary TABLESPACE TEMP_PNLREPORT tempfile '/oradata2/ORCL/temp_pnlreport.dbf' SIZE 500m AUTOEXTEND ON next 10m MAXSIZE 2g 二,创建一般表空间 create tablesp...

MyBatis模糊查询和多条件查询

一、ISmbmsUserDao层 //根据姓名模糊查询 public List<Smbms> getUser(); //多条件查询 public List<Smbms> getLikeUser(@Param("userName") String userName , @Param("userCode"...

Mysql 日期时间类型详解

MySQL 中有多种数据类型可以用于日期和时间的表示,不同的版本可能有所差异,表3-2 中列出了MySQL 5.0 中所支持的日期和时间类型。 这些数据类型的主要区别如下: * 如果要用来表示年月日,通常用DATE 来表示。 * 如果要用来表示年月日时分秒,通常用DATETIME 表示。 * 如果只用来表示时分秒,通常用TIME 来表示。 * 如...

MySQL 连接查询

一.什么是连接查询 1.连接查询是一种非常常见的数据库操作,在两张(或者多张)表中进行匹配. 2.以mysql为例,支持Cross join(交叉连接), inner join(内连接), outer join(外连接),等其他连接.  二、数据准备(创建emp员工表和dept部门表并插入数据) SET NAMES utf8mb4; SET FOREIGN...

mysql慢查询日志分析工具 mysqlsla(转)

mysql数据库的慢查询日志是非常重要的一项调优辅助日志,但是mysql默认记录的日志格式阅读时不够友好,这是由mysql日志记录规则所决定的,捕获一条就记录一条,虽说记录的信息足够详尽,但如果将浏览慢查询日志做为一项日常工作,直接阅读mysql生成的慢查询日志就有可能比较低效了。 除了操作系统命令直接查看slowlog外,mysql自己也提供了一个阅读s...

SQL SERVER按照时间查询今天、明天、几天前的数据

今天的所有数据:select * from 表名 where DateDiff(dd,datetime类型字段,getdate())=0昨天的所有数据:select * from 表名 where DateDiff(dd,datetime类型字段,getdate())=17天内的所有数据:select * from 表名 where DateDiff(dd...