Sql Server如何返加系统时间

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)
1011美国英语mm/dd/yy
1022ANSIyy.mm.dd
1033英国英语/法语dd/mm/yy
1044德语dd.mm.yy
1055意大利语dd-mm-yy
1066-dd mon yy
1077-Mon dd, yy
1088-hh:mm:ss
9 or 109 -默认值 + 毫秒mon dd yyyy hh:mi:ss:mmmAM(或 PM)
11010美国英语mm-dd-yy
11111日本yy/mm/dd
11212ISOyymmdd
13 or 113 -欧洲默认值 + 毫秒dd mon yyyy hh:mm:ss:mmm(24 小时)
11414-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),有助于正确显示字符串。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值