`
panderloveme
  • 浏览: 1731 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

sqlserver里的时间

 
阅读更多
SQL Server 2008 才有 date 类型 与 time 类型。
SQL Server 2005 只有 datetime 数据类型。

如果要 SQL 语句,仅仅显示 年-月-日 的话。
可以选择下面的一种方式来处理。

1> select Convert(varchar(30), GETDATE(), 102)
2> go

------------------------------
2011.07.13

(1 行受影响)
1> select Convert(varchar(30), GETDATE(), 111)
2> go

------------------------------
2011/07/13

(1 行受影响)
1> select Convert(varchar(30), GETDATE(), 112)
2> go

------------------------------
20110713

(1 行受影响)



 问:如在Oracle中有以下的语句:
INSERT INTO mytable (id,time) VALUES (100,to_date('2005-3-23 11:23:25','YYYY-MM-DD HH24:MI:SS'));
但是sql server不支持to_date
  最好能给个例子。
  答:
create table simp
(
id int,
time datetime   --SQL里自带时间格式
)
insert into simp(id,time) values (100,'2005-3-23 11:23:25')
go
select * from simp
drop table simp
  决定输入的日期如何解释的是set dateformat设置
  SET DATEFORMAT
  设置用于输入 datetime 或 smalldatetime 数据的日期部分(月/日/年)的顺序。
  语法
  SET DATEFORMAT { format | @format_var }
  参数
  format | @format_var
  是日期部分的顺序。可以是 Unicode 或转换为 Unicode 的 DBCS。有效参数包括 mdy、dmy、ymd、ydm、myd 和 dym。美国英语默认值是 mdy。
  注释
  该设置仅用在将字符串转换为日期值时的解释中。它对日期值的显示没有影响。
  SET DATEFORMAT 的设置是在执行或运行时设置,而不是在分析时设置。
  权限
  SET DATEFORMAT 权限默认授予所有用户。
  示例
  下例使用不同的日期格式处理不同格式的日期字符串。
SET DATEFORMAT mdy
GO
DECLARE @datevar datetime
SET @datevar = '12/31/98'
SELECT @datevar
GO
SET DATEFORMAT ydm
GO
DECLARE @datevar datetime
SET @datevar = '98/31/12'
SELECT @datevar
GO
SET DATEFORMAT ymd
GO
DECLARE @datevar datetime
SET @datevar = '98/12/31'
SELECT @datevar
GO

Sql Server如何返加系统时间
分类: Sql Server 2006-02-21 16:49 1233人阅读 评论(0) 收藏 举报
1.select getdate()
或者
declare @date datetime
set @date=getdate()
select @date
得到的格式:2006-02-21 16:43:01.513
2.SELECT CONVERT(CHAR(5),GETDATE(),108)
得到的格式:16:47
3.SELECT CONVERT(CHAR(20),GETDATE(),108)
得到的格式:16:47:50           
select语句后面也可以加上任意的表名(from table)
此时,显示所有记录的系统时间;如果显示一个则加上distinct即可
附:
SELECT CONVERT(CHAR(5),GETDATE(),108)
的参数
日期格式                   代号
-------------------- -----------
04/05/2000                   101
-------------------- -----------
2000.04.05                   102
-------------------- -----------
05/04/2000                   103
-------------------- -----------
05.04.2000                   104
-------------------- -----------
05-04-2000                   105
-------------------- -----------
05 Apr 2000                  106
-------------------- -----------
Apr 05, 2000                 107
-------------------- -----------
11:33:24                     108
-------------------- -----------
Apr  5 2000 11:33:24         109
-------------------- -----------
04-05-2000                   110
-------------------- -----------
2000/04/05                   111
-------------------- -----------
20000405                     112
日期/时间类型:datetime 和 smalldatetime
实际的数据类型没有实际的国际化含义;它们表示具有以下定义的日期/时间值:
datetime
从公历 1753 年 1 月 1 日到公历 9999 年 12 月 31 日的日期和时间,精度为 1/300 秒(即 3.33 毫秒或 0.00333 秒)。
smalldatetime
从公历 1900 年 1 月 1 日到公历 2079 年 6 月 6 日的日期和时间,精度为分钟。29.998 秒或更小的 smalldatetime 值将下舍入到最接近的分钟数;而 29.999 秒或更大的值则上舍入至最接近的分钟数。
Microsoft SQL Server 不接受这些范围外的数据。实际数据在内部存储为两个整数(即 datetime 的 4 个字节整数和 smalldatetime 的 2 个字节整数),它们表示所讨论的日期和时间。由于实际值对于特定于区域设置的格式转换并没有任何实际的意义,所以将由开发人员按照需要来定义这种转换。
SQL Server 2000 支持多种不同的可在服务器上执行且特定于区域设置的转换,而不用依靠开发人员提供的定制解决方案。这些日期样式可以通过 CONVERT 函数来访问,该函数包括一种数据类型、一个表达式和一种可选样式,如下表所示。
包含世纪 不包含世纪 标准 输入(转换为 datetime)
输出(转换为文本)
0 或 100 - 默认值 mon dd yyyy hh:miAM(或 PM)
101 1 美国英语 mm/dd/yy
102 2 ANSI yy.mm.dd
103 3 英国英语/法语 dd/mm/yy
104 4 德语 dd.mm.yy
105 5 意大利语 dd-mm-yy
106 6 - dd mon yy
107 7 - Mon dd, yy
108 8 - hh:mm:ss
9 or 109 - 默认值 + 毫秒 mon dd yyyy hh:mi:ss:mmmAM(或 PM)
110 10 美国英语 mm-dd-yy
111 11 日本 yy/mm/dd
112 12 ISO yymmdd
13 or 113 - 欧洲默认值 + 毫秒 dd mon yyyy hh:mm:ss:mmm(24 小时)
114 14 - hh:mi:ss:mmm(24 小时)
20 或 120 - ODBC 规范 yyyy-mm-dd hh:mi:ss(24h)
21 或 121 - ODBC 规范 + 毫秒 yyyy-mm-dd hh:mi:ss.mmm(24 小时)
126 - ISO8601(无空格) yyyy-mm-dd Thh:mm:ss:mmm
130 - 科威特语 (Hijri) dd mon yyyy hh:mi:ss:mmmAM
131 - 科威特语 (Hijri) dd/mm/yy hh:mi:ss:mmmAM

以下示例说明了如何使用 CONVERT 函数:
SELECT CONVERT(char, GETDATE(), 100) AS [100]
Aug 16 2000 11:50AM
然后,您可以按类似的方式将数据从字符串转换为日期值:
SELECT CONVERT(datetime, 'Aug 16 2000 11:50AM', 100) AS [100]
值得注意的是,当使用 Style 130(科威特语或 Hijri)转换这些日期时,如果排序规则不是一种使用 Unicode 转换代码页 1256 的阿拉伯排序规则,那么在转换为 char 数据类型时就可能会毁坏数据。下面的图解(图 1)说明了这一问题。

图 1:转换日期/时间的 Transact-SQL
注意,在 U.S. 客户端计算机上,尝试使用 char 数据类型会使阿拉伯字符转换为问号,并使 nchar 数据类型呈现为阿拉伯字符。由于 SQL Query Analyzer 内 SQL 网格的限制,这种特殊字符串仍然不能显示正确的格式(象在阿拉伯文客户端计算机上那样)。下面的图解(图 2)说明了实际的 Hijri 日期字符串应该如何显示。

图 2:Hijri 日期字符串
由于复杂脚本(如阿拉伯语)具有必须应用的成形规则,所以数据能够正确地呈现。在使用双向 (BIDI) 语言(如希伯来语)情况下,所有数据将被反转;其效果要比在使用阿拉伯语的情况下更为明显。这是因为字母的实际形状会根据周围的字母发生变化。Windows 2000 或支持阿拉伯语的 Windows 早期版本中不会出现这种问题。
另外,返回的数据字符串自身会在需要它的双向语言环境中引发问题,因为象 Internet Explorer 或 Windows 2000 这样的应用程序所使用的双向语言文本的布局规则会使日期以下面图解(图 3)中所示的形式显示。

图 3:双向日期字符串示例
此可视顺序 (dd hh:mi:ss yyyy mon 显然不是预期的顺序;虽然通过在字符串前添加相应的 Unicode 控制字符可以很容易解决该问题,但仍可以将该问题视作 CONVERT 函数中 130 样式的一般限制,如以下查询所示:
SELECT NCHAR(8207) + CONVERT(nchar, GETDATE(), 130)
NCHAR 函数返回一个基于传入 Unicode 代码数据点的字符。8207 或 16 进制的 0x200F 是从右到左的标记 (RLM),有助于正确显示字符串。
分享到:
评论

相关推荐

    SQLServer时间处理

    在SQL Server中,时间处理是数据库管理中的一个重要环节,它涉及到如何存储、操作和查询与时间相关的数据。本文将深入探讨SQL Server中的时间处理技术,包括时间数据类型的使用、时间值的转换、以及如何获取特定时间...

    sqlserver时间函数

    时间函数,sqlserver,标签系统标签系统标签系统标签系统

    sql server2019安装包

    SQL Server 2019是Microsoft推出的一款关系型数据库管理系统,是SQL Server系列中的一个重要版本。它提供了强大的数据存储、处理和分析能力,广泛应用于企业级数据库应用开发和数据分析。在本安装包中,主要包含的是...

    Microsoft SQL Server 2008 R2 SP1 Native Client

    适用 SQL Server Native Client 的这个可转散发安装程序会安装运行时间期间需要的客户端组件,以利用 SQL Server 2008 新功能,并选择性地安装开发使用 SQL Server Native Client API 之应用程序时所需要的头文件。

    SQLserver策略备份时间突然异常增大处理

    ### SQL Server 策略备份时间异常增大的处理方法 在日常维护SQL Server数据库时,可能会遇到策略备份时间突然异常增大的情况。这种情况不仅影响到数据库的正常运行,还可能导致数据完整性受损。本文将详细探讨如何...

    sqlserver离线安装包

    "sqlserver离线安装包" 提供了这样一种解决方案,使得我们可以在无网络的情况下完成 SQL Server 的部署。 离线安装通常涉及到以下几个关键步骤和知识点: 1. **下载完整安装包**: 要进行离线安装,首先你需要在有...

    sqlserver内存释放

    SQL Server 是一款高性能的关系型数据库管理系统,在处理大量数据时能够实现高效的查询响应时间。为了提高性能,SQL Server 会尽可能地利用系统可用内存来进行数据缓存。这种内存管理策略虽然有助于提升查询效率,但...

    Spotlight on SQL Server

    5. **性能优化**:通过Spotlight on SQL Server,用户可以监控SQL查询执行时间,识别慢查询,进而优化索引、调整查询语句或者调整数据库架构。此外,它也可能提供数据库维护计划,如定期备份、检查和修复,确保数据...

    sqlserver驱动包

    String url = "jdbc:sqlserver://localhost:1433;databaseName=myDatabase"; String username = "myUsername"; String password = "myPassword"; try { Class.forName(...

    Sql Server 数据库超时问题的解决方法

    Sql Server 数据库超时问题是指在使用 Sql Server 数据库时,出现的等待响应时间过长或超时的问题。这种问题可能会导致数据库连接中止、查询失败等问题。 一、Sql Server 等待响应时间 Sql Server 等待响应时间是...

    SQLServer性能监控指标说明

    * 等待时间:等待时间是指 SQL Server 等待执行查询的时间。 * 锁定时间:锁定时间是指 SQL Server 锁定资源的时间。 优化方法 根据监控指标,可以对 SQL Server 进行优化。以下是一些常用的优化方法: * 优化...

    sqlserver 时间序列文档

    ### SQL Server 时间序列文档知识点详解 #### 一、时间序列数据概述 时间序列数据是指按照时间顺序记录的数据集合,这些数据通常与特定的时间点或时间段有关。在SQL Server中进行时间序列数据分析,可以帮助我们...

    sqlserver中对时间日期的操作

    在SQL Server中对时间日期的操作是数据库管理与开发过程中不可或缺的一部分。这不仅涉及到对当前时间的获取、格式化,还包括了日期的计算和调整。以下将深入解析如何在SQL Server中进行时间日期的操作。 ### 一、...

    sqlServer的jar包

    SQL Server的JAR包是Java开发者在与SQL Server数据库进行交互时所必需的库文件,它们包含了连接、查询、操作数据库所需的各种类和方法。在Java应用程序中,使用这些JAR包可以实现对SQL Server数据库的高效访问。下面...

    sql server基本图标

    在IT领域,数据库管理系统是不可或缺的一部分,而Microsoft SQL Server作为其中的佼佼者,拥有广泛的应用。"SQL Server基本图标"通常指的是该数据库系统中用于表示不同对象、状态和操作的图形元素。这些图标在数据库...

    零点起飞学SQL server

    由于提供的文件信息中,标题和描述均为"零点起飞学SQL server"和"零点起飞学SQLServer",这两部分并没有提供实际的知识内容,而只是表达了一个关于SQL Server学习材料的主题。至于“墨马图书专营店”的重复内容,...

    SQL Optimizer for SQL Server 10.0.3

    《SQL Server 10.0.3 SQL Optimizer:提升T-SQL性能的艺术》 SQL Server作为企业级的关系型数据库管理系统,其性能优化是数据库管理员和开发人员关注的重点。SQL Optimizer for SQL Server 10.0.3 正是一款针对SQL ...

    sqlserver2008 jar驱动(Microsoft SQL Server JDBC Driver).rar

    Connection conn = DriverManager.getConnection("jdbc:sqlserver://servername:port;databaseName=dbname;user=username;password=password;"); ``` 6. **JDBC连接池**: 在实际应用中,为了提高性能和资源...

    sqlserver常用sql

    死锁的诊断和定位 查询阻塞的语句 查询执行较慢的语句 查询正在执行的语句1 查询正在执行的语句2 查询所有表的主键 查询所有索引 查询表结构 ...修改SQLServer最大内存 用DAC连接到SQL Server 其它SQL DBCC

Global site tag (gtag.js) - Google Analytics