sql日期计算
⑴ sql如何计算指定日期当前月
给出的日期求当月一号的方法你的写法应该是比较简单的方法了,不过感觉你给转换成char型不太好,最好是varchar型的,另外你的写法可以简写成
select convert(varchar(6),cast('2006-3-8' as datetime),112)+'01'
这样得到的'20060301'可以直接作为日期来使用,不必再转换。
得到之前几个个月的第一天可以直接用dateadd来实现
比如得到3月1日的上一月1日,也就是2月1日的方法是
select dateadd(month,-1,convert(varchar(6),cast('2006-3-8' as datetime),112)+'01')
⑵ SQL 日期计算
假设a是那个字段
convert(varchar(6),dataadd(month,-1,left(a,4) + '/' + right(a,2) + '/01'),112)
请参考
⑶ SQL 怎么计算时间
SELECTDATEDIFF(mi,intime,outtime)ASElapsedTimeFROM[表名]
你可以使用DATEDIFF(datepart,startdate,enddate)函数,
datepart 参数可以是下列的值:
datepart 缩写
年 yy, yyyy
季度 qq, q
月 mm, m
年中的日 dy, y
日 dd, d
周 wk, ww
星期 dw, w
小时 hh
分钟 mi, n
秒 ss, s
毫秒 ms
微妙 mcs
纳秒 ns
⑷ SQL Server各种日期计算方法
本周的星期一
这里我是用周(wk)的时间间隔来计算哪一天是本周的星期一。
SELECT DATEADD(wk, DATEDIFF(wk,0,getdate()), 0)
一年的第一天
现在用年(yy)的时间间隔来显示这一年的第一天。
SELECT DATEADD(yy, DATEDIFF(yy,0,getdate()), 0)
季度的第一天
假如你要计算这个季度的第一天,这个例子告诉你该如何做。
SELECT DATEADD(qq, DATEDIFF(qq,0,getdate()), 0)
⑸ sql日期计算间隔多少天
取出期间的每一天(DATEDIFF),判断下是2月(DATEPART)就加1,OK?
⑹ 在Sql语句中怎样计算出两个日期的差值
sql语句中计算两个日期的差值用datediff函数。
工具:sqlserver 2008 R2
步骤:
1、计算2009-06-23与2009-06-17之间的天数。语句如下:
selectdatediff(d,'2009-06-17','2009-06-23')
2、查询结果:
⑺ 请教一个关于SQL日期计算的问题!
首先要把表单提交过来的日期转换成一个日期字串,如:
dateStr=request("date")
dateStr=left(dateStr,4) & "/" & right(dateStr,4)
dateStr=left(dateStr,7) & "/" & right(dateStr,2)
然后把sql语句改成:
sql="select *,datediff(yyyy,R_birthday,#" & dateStr & "#) from table_R"
日期的两边要用#号表示日期.
⑻ 求sql 时间的计算方法
DATEADD 函数 [日期和时间]
--------------------------------------------------------------------------------
作用
返回通过将若干日期部分添加到日期中而产生的日期。
语法
DATEADD ( date-part, numeric-expression, date-expression )
date-part :
year | quarter | month | week | day | hour | minute | second | millisecond
参数
date-part 要添加到日期中的日期部分。
numeric-expression 要添加到日期中的日期部分的数值。numeric_expression 可以是任意数字类型,但它们的值将被截断成整数。
date-expression 要修改的日期。
示例
下面的语句返回值:1995-11-02 00:00:00.0。
SELECT dateadd( month, 102, '1987/05/02' ) 标准和兼容性
⑼ 利用SQL语句如何获得两个日期之间相差的天数
用sysdate假设结束日期字段是end_date
添加这个判断条件:
where to_char("end_date",'YYYY') = to_char(sysdate,'YYYY') 判断年相同
and to_char("end_date",'MM') = to_char(sysdate,'MM') 判断月相同
and to_char("end_date",'dd') - to_char(sysdate,'dd') = 15 判断日相同
或者:
where to_char("end_date",'YYYY-MM-DD') - to_char(sysdate,'YYYY-MM-DD')=15
(9)sql日期计算扩展阅读:
注意事项
DATEDIFF返回跨两个指定日期的日期和时间边界数。
语法:DATEDIFF ( datepart , startdate , enddate )
参数:datepart
是规定了应在日期的哪一部分计算差额的参数。下表列出了 Microsoft® SQL Server™ 识别的日期部分和缩写。
startdate是返回datetime或smalldatetime值或日期格式字符串的表达式。 因为smalldatetime只精确到分钟,所以当用smalldatetime值时,秒和毫秒总是 0。
如果只指定年份的最后两位数字,则小于或等于"两位数年份截止期"配置选项的值的最后两位数字的数字所在世纪与截止年所在世纪相同。大于该选项的值的最后两位数字的数字所在世纪为截止年所在世纪的前一个世纪。例如,如果 two digit year cutoff 为 2049(默认),则 49 被解释为 2049,2050 被解释为 1950。为避免模糊,请使用四位数的年份。
有关时间值指定的更多信息,请参见时间格式。有关日期指定的更多信息,请参见 datetime 和 smalldatetime。
enddate是计算的终止日期。enddate 是返回 datetime 或 smalldatetime 值或日期格式字符串的表达式。
返回类型:integer
注释:startdate 是从 enddate 减去。如果 startdate 比 enddate 晚,返回负值。当结果超出整数值范围,DATEDIFF 产生错误。对于毫秒,最大数是 24 天 20 小时 31 分钟零 23.647 秒。对于秒,最大数是 68 年。