`
zhujs
  • 浏览: 102240 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

SQL只取日期的年月日部分(转)

阅读更多
方法一:
select CONVERT(varchar, getdate(), 120 ) 
2004-09-12 11:06:08 

select replace(replace(replace(CONVERT(varchar, getdate(), 120 ),\'-\',\'\'),\' \',\'\'),\':\',\'\') 
20040912110608 

select CONVERT(varchar(12) , getdate(), 111 ) 
2004/09/12 

select CONVERT(varchar(12) , getdate(), 112 ) 
20040912 

select CONVERT(varchar(12) , getdate(), 102 ) 
2004.09.12 

select CONVERT(varchar(12) , getdate(), 101 ) 
09/12/2004 

select CONVERT(varchar(12) , getdate(), 103 ) 
12/09/2004 

select CONVERT(varchar(12) , getdate(), 104 ) 
12.09.2004 

select CONVERT(varchar(12) , getdate(), 105 ) 
12-09-2004 

select CONVERT(varchar(12) , getdate(), 106 ) 
12 09 2004 

select CONVERT(varchar(12) , getdate(), 107 ) 
09 12, 2004 

select CONVERT(varchar(12) , getdate(), 108 ) 
11:06:08 

select CONVERT(varchar(12) , getdate(), 109 ) 
09 12 2004 1 

select CONVERT(varchar(12) , getdate(), 110 ) 
09-12-2004 

select CONVERT(varchar(12) , getdate(), 113 ) 
12 09 2004 1 

select CONVERT(varchar(12) , getdate(), 114 ) 
11:06:08.177
方法二:
declare @tt varchar(4),@pp varchar(8) ,@ss varchar(4),@aa varchar(16)

set @tt=rtrim(cast(month(getdate()) as varchar(10)))
set @ss=rtrim(cast(day(getdate()) as varchar(10)))
select @pp=rtrim(cast(year(getdate()) as varchar(10)))
select @aa=@pp+@tt+@ss
select @aa
只显示年月,不显示日:select datepart(year,getdate())*100+datepart(month,getdate())
                   200811

转自:http://www.cnblogs.com/flyinghigher/archive/2010/08/16/1800501.html
1、常用日期方法(下面的GetDate() = '2006-11-08 13:37:56.233')
(1)DATENAME ( datepart ,date )
   返回表示指定日期的指定日期部分的字符串。Datepart详见下面的列表.
SELECT DateName(day,Getdate()) –返回8
(2)DATEPART ( datepart , date )
    返回表示指定日期的指定日期部分的整数。
SELECT DATEPART(year,Getdate()) –返回2006
(3)DATEADD (datepart , number, date )
    返回给指定日期加上一个时间间隔后的新datetime 值。
SELECT DATEADD(week,1,GetDate()) --当前日期加一周后的日期
(4)DATEDIFF ( datepart , startdate , enddate )
返回跨两个指定日期的日期边界数和时间边界数。
SELECT DATEDIFF(month,'2006-10-11','2006-11-01') --返回1
(5)DAY ( date )
返回一个整数,表示指定日期的天datepart 部分。
SELECT day(GetDate()) –返回8
(6)GETDATE()
以datetime 值的SQL Server 2005 标准内部格式返回当前系统日期和时间。
SELECT GetDate()   --返回2006-11-08 13:37:56.233
(7)MONTH ( date )
返回表示指定日期的“月”部分的整数。
SELECT MONTH(GETDATE()) --返回11
(8)YEAR ( date )
返回表示指定日期的“年”部分的整数。
SELECT YEAR(GETDATE()) --返回2006

2、取特定日期
(1)获得当前日期是星期几
SELECT DateName(weekday,Getdate()) --Wednesday
(2)计算哪一天是本周的星期一
SELECT DATEADD(week, DATEDIFF(week,'1900-01-01',getdate()), '1900-01-01')  --返回2006-11-06 00:00:00.000
或
SELECT DATEADD(week, DATEDIFF(week,0,getdate()),0)     
(3)当前季度的第一天
SELECT DATEADD(quarter, DATEDIFF(quarter,0,getdate()), 0)—返回2006-10-01 00:00:00.000
(4)如何取得某个月的天数
SELECT Day(dateadd(ms,-3,DATEADD(mm, DATEDIFF(m,0,'2006-02-03')+1,0)))  —返回28
(5)一个季度多少天
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)) —返回92

(6)获得年月日(yyyy-MM-dd)
SELECT CONVERT(VARCHAR(10),GETDATE(),120) –返回2006-11-08
3、其它
(1)--下面的示例将日期指定为数字。数据库引擎将0 解释为1900 年1 月1 日。
SELECT MONTH(0), DAY(0), YEAR(0) –返回1    1   1900
--下面两句是等效的
SELECT DATENAME(WEEKDAY,0)
SELECT DATENAME(WEEKDAY,'1900-01-01')

(2)SET DATEFIRST { number | @number_var }
将一周的第一天设置为从1 到7 的一个数字。
SET DATEFIRST 1 --表示一周的第一天是“星期一"
SELECT DATENAME(WEEKDAY,GETDATE()) --Wednesday
SELECT DATEPART(weekday,GETDATE()) --返回3
--查看当前设置情况
select @@DATEFIRST

(3)SET DATEFORMAT { format | @format_var }
设置用于输入datetime 或smalldatetime 数据的日期部分(月/日/年)的顺序。
...有效参数包括mdy、dmy、ymd、ydm、myd 和dym。
...该设置仅用在将字符串转换为日期值时的解释中。它不影响日期值的显示。
...SET DATEFORMAT 的设置是在执行或运行时设置,而不是在分析时设置。
...SET DATEFORMAT 将覆盖SET LANGUAGE 的隐式日期格式设置。
下面是例子:
-- Set date format to year, day, month.
SET DATEFORMAT ydm;
GO
DECLARE @datevar DATETIME;
SET @datevar = '1998/31/12';
SELECT @datevar AS DateVar;
GO
-- Set date format to year, month, day.
SET DATEFORMAT ymd;
GO
DECLARE @datevar DATETIME;
SET @datevar = '1998/12/31';
SELECT @datevar AS DateVar;
GO

(4)日期部分的列表
日期部分
缩写
year
yy, yyyy
quarter
qq, q
month
mm, m
dayofyear
dy, y
day
dd, d
week
wk, ww
weekday
dw
hour
hh
minute
mi, n
second
ss, s
millisecond
ms
 
数据类型
范围
精确度
datetime
1753 年 1 月 1 日到 9999 年 12 月 31 日
3.33 毫秒
smalldatetime
1900 年 1 月 1 日到 2079 年 6 月 6 日
1 分钟

转自:http://www.cnblogs.com/adandelion/archive/2006/11/08/554312.html
分享到:
评论

相关推荐

    关于日期的处理包括java和sql

    获取日期年月日 在java中,我们可以使用Calendar类来获取日期的年月日。例如: Calendar cal = Calendar.getInstance(); cal.setTime(new Date()); int day = cal.get(Calendar.DAY_OF_MONTH); int month = cal....

    oracle 求取2个时间间隔的年月日

    ### Oracle 中求取两个时间间隔的年月日 #### 1. **Months_between() 函数** `MONTHS_BETWEEN()` 是Oracle中一个非常实用的函数,用于计算两个日期之间的月份数量。其语法如下: ```sql MONTHS_BETWEEN(date1, date...

    sql确定两个日期之间的月份数或年数

    ### SQL 确定两个日期之间的月份数或年数 在进行数据分析或者处理与时间相关的业务逻辑时,经常会遇到需要计算两个日期之间的差异的问题,尤其是月份数和年数的差异。这样的需求在人力资源管理、财务分析等领域非常...

    通过存储过程获取编号,含年月日时分秒,14个字符,

    根据提供的文件信息,本文将详细解释如何在MS SQL Server 2000环境中通过存储过程获取包含年月日时分秒的编号,并确保该编号为14个字符长度。 ### 存储过程简介 存储过程是在数据库中预编译好的SQL语句集合,可以...

    Sqlserver2000经典脚本

    复杂交叉表1.sql │ 多栏显示.sql │ 日期+星期+时间.sql │ 格式化报表.sql │ 横转竖-1.sql │ 横转竖-字段名.sql │ 横转竖-生成字段名.sql │ 横转竖.sql │ 行列互换的复杂...

    自定義編碼生成:編碼類型+年月日+流水碼

    年月日部分则确保编码具有时间顺序,便于追溯和排序。流水码是一个递增的序列号,确保在同一日期内每个编码的唯一性。 C#是一种广泛使用的面向对象的编程语言,非常适合进行这种业务逻辑的开发。在C#中,我们可以...

    SQLserver中用convert函数转换日期格式的方法

    在SQL Server中,日期和时间数据的处理是数据库操作中非常常见的一部分。有时,我们需要将日期字段转换为特定的格式以便于展示或者与其他系统进行数据交换。`CONVERT`函数就是用于这种转换的关键工具。本篇文章将...

    Sqlserver 常用日期时间函数

    `DATEPART`函数用于提取日期时间值中的特定部分,如年、月、日等。例如: ```sql SELECT DATEPART(year, GETDATE()) ``` 这会返回当前年份。 `DATENAME`函数与`DATEPART`类似,但它返回的是日期部分的名称而不是...

    数据库中日期时间用法

    本文将深入探讨Oracle数据库中日期时间的用法,通过一系列实用的函数,帮助读者掌握如何在SQL查询中高效地操作日期时间数据。 ### 一、Sysdate:获取当前日期和时间 `Sysdate`是Oracle中最常用的内置函数之一,...

    身份证号里获取出生年月

    为了提取出生年月,我们只需要关注第7至10位(表示年份)和第11至12位(表示月份)。例如,对于一个18位的身份证号码“142401860618623119”,其出生日期码为“19860618”。因此,出生年月可以被提取为“1986-06”。...

    Sql中的时间函数(统计后上发的)

    除了`GETDATE()`和`CONVERT()`函数,SQL Server还提供了许多其他的时间函数,如`DATEADD()`用于添加或减去日期和时间间隔,`DATEDIFF()`计算两个日期之间的差值,`DATEPART()`提取日期和时间的各个部分,`...

    SQL函数大全

    - **MDY(MONTH,DAY,YEAR)**:根据给定的年月日返回日期值。 - **DATETIME(DATE/DATETIMEEXPRESSION)**:返回指定表达式的日期时间值。 - **INTERVAL(DATE/DATETIMEEXPRESSION)**:返回表达式代表的时间间隔值。 - ...

    数据库查询时间没有了时分秒的解决办法

    在进行数据库操作时,有时会遇到一个令人困惑的问题:查询返回的时间字段中丢失了时分秒的信息,只显示日期部分。这种情况通常出现在特定环境下,比如使用Oracle数据库并结合Java应用程序进行数据处理时。本文将详细...

    Oracle各种日期计算方法定义.pdf

    使用`TRUNC`函数,只保留日期部分: ```sql SELECT TRUNC(SYSDATE) AS date_without_time FROM DUAL; ``` 14. **显示星期几**: 结合`TO_CHAR`和日期格式模型`'DAY'`: ```sql SELECT TO_CHAR(SYSDATE, 'DAY...

    Access函数大全.pdf

    * Day:返回日期的日部分 * Hour:返回日期的小时部分 * Minute:返回日期的分钟部分 * Month:返回日期的月份部分 * Now:返回当前时间(完整时间,包括年月日小时分秒) * Second:返回日期的秒部分 * Time:返回...

    表的相关查询(最全面的查询语句集合)

    在 SQL Server 中,如果需要对多个表(其名称部分相同或遵循一定的模式)进行联合查询,可以通过动态 SQL 来实现这一需求。例如,给定一系列表名如 `tz2008_1_1`, `tz2008_1_2`, `tz2008_1_3`,我们可以构造一个 SQL...

    教案ACCESS函数大全.pdf

    * `Now`:返回当前时间(完整时间,包括年月日小时分秒)。 * `Second`:返回日期的秒部分。 * `Time`:返回当前的时间部分(即除去年/月/日的部分)。 * `Weekday`:返回某个日期的当前星期(星期天为1,星期一为2...

    ACCESS函数大全.pdf

    * Day:返回日期的日部分 * Hour:返回日期的小时部分 * Minute:返回日期的分钟部分 * Month:返回日期的月份部分 * Now:返回当前时间(包括年月日小时分秒) * Second:返回日期的秒部分 * Time:返回当前的时间...

    Access函数大全资料.docx

    * `Now`:返回当前时间(包括年月日小时分钟秒) * `Second`:返回日期的秒部分 * `Time`:返回当前的时间部分(即除去年月日的部分) * `Weekday`:返回某个日期的当前星期(星期天为 1,星期一为 2,星期二为 3......

    常用access函数集

    11. Now:返回当前时间(完整时间,包括年月日小时分秒)。 12. Second:返回日期的秒部分。 13. Time:返回当前的时间部分(即除去年/月/日的部分)。 14. Weekday:返回某个日期的当前星期(星期天为 1,星期一为 ...

Global site tag (gtag.js) - Google Analytics