Q
SQL投日期时间
7
A
回答
5
将空字符串转换为0
,然后将其输出到era日期。
与Oracle
不同,SQL Server
区分了NULL
和空字符串。
9
这是因为空字符串''
不是NULL
。如果你这样做:
select Cast(null AS datetime)
OUTPUT:
-----------------------
NULL
(1 row(s) affected)
CAST and CONVERT (Transact-SQL)
当代表 仅日期或仅时间部分字符数据 投给日期时间或SMALLDATETIME 数据类型,联合国指定时间 组件设置为00:00:00.000和 未指定日期组件设置为 至1900-01-01。
1
从实验,它看起来像SQL Server试图直接转换为DateTime
,和失败,试图转换为int
,然后DateTime
:
PRINT Cast('2009-1-1' AS datetime)
go
PRINT Cast('2009/1/1' AS datetime)
go
PRINT Cast('1.1' AS datetime)
go
PRINT Cast('1/2009/1' AS datetime)
go
PRINT Cast('' AS int)
go
PRINT Cast(' ' AS int)
go
PRINT Cast(0 AS datetime)
go
PRINT Cast('X' AS datetime)
go
PRINT Cast('X' AS int)
输出:
Jan 1 2009 12:00AM
Jan 1 2009 12:00AM
Msg 241, Level 16, State 1, Line 1
Conversion failed when converting date and/or time from character string.
Jan 1 2009 12:00AM
0
0
Jan 1 1900 12:00AM
Msg 241, Level 16, State 1, Line 1
Conversion failed when converting date and/or time from character string.
Msg 245, Level 16, State 1, Line 1
Conversion failed when converting the varchar value 'X' to data type int.
+0
此测试显示了我的答案在行动中的BOL报价:'选择Cast('1/1/2010'AS datetime)作为defaultTime,Cast('1:23:45.678'AS datetime)作为defaultDate,Cast(''AS datet ime)作为defaultDateTime'。如果没有给出时间,它默认为'00:00:00.000',如果没有给出日期,它默认为'1/1/1900' – 2010-03-25 18:10:21
相关问题
- 1. 日期时间投在SQL Server 2005
- 2. 明确日期/日期时间投
- 3. AutoMapper投影 - 日期/时间
- 4. SQL投日期时间,而不小时,订货问题也
- 5. SQL日期时间间隔
- 6. 将日期时间投射到OracleTimeStampTZ
- 7. 显示日期,日期时间的投入将
- 8. SQL日期/时间操作
- 9. SQL组由日期时间
- 10. SQL - 最后日期时间
- 11. 整数日期时间SQL
- 12. SQL Server日期时间ss.mmmZ
- 13. SQL日期时间数据
- 14. SQL日期时间问题
- 15. SQL日期时间值
- 16. SQL PHP日期时间
- 17. 日期时间类型SQL
- 18. SQL日期时间格式
- 19. SQL转换日期时间
- 20. SQL日期时间查询
- 21. SQL日期时间性能
- 22. VB和SQL日期时间
- 23. SQL日期时间转换
- 24. SQL日期时间溢出
- 25. 转换日期时间SQL
- 26. SQL-PHP日期时间
- 27. SQL日期时间平均
- 28. ORDERBY月(日期时间)SQL
- 29. 的Java SQL日期时间
- 30. SQL日期时间转换
啊..时间旅行..很高兴有人发现它 – CheeseConQueso 2010-03-26 17:40:19