Questions tagged «datetime»

针对包含日期和时间部分的数据类型的特定问题。

5
将varchar数据类型转换为datetime数据类型导致超出范围的值
我正在尝试运行一个简单的查询来获取在11月创建的所有行: SELECT COUNT(*) FROM dbo.profile WHERE [Created] BETWEEN '2014-11-01 00:00:00.000' AND '2014-11-30 23:59:59.997'; SMSS返回: 从varchar数据类型到datetime数据类型的转换导致值超出范围。 我不明白为什么将“ Created”设置为datetime时将数据从varchar转换为datetime: 我需要告诉服务器“创建”是日期时间吗?如果没有,为什么我会收到此varchar消息? 编辑:数据库中的值为YYYY-MM-DD。下面来自@SqlZim的回复说,我需要使用convert()告诉sql数据库中的日期是什么格式-并将空格字符替换为字母T: select count(*) from dbo.profile where [created] between convert(datetime,'2014-11-01T00:00:00.000') and convert(datetime,'2014-11-30T23:59:59.997');`

4
存储数以百万计的行的非数字化数据还是某些SQL魔术?
我的DBA经验远不止于简单存储+检索CMS样式数据,还有很多,所以这可能是一个愚蠢的问题,我不知道! 我遇到一个问题,我需要查询或计算特定时间段内特定群体人数和特定天数的假期价格。例如: 一月份任何时候可供4人入住2晚的酒店客房多少钱? 我有像这样存储的5000家酒店的价格和空房数据: Hotel ID | Date | Spaces | Price PP ----------------------------------- 123 | Jan1 | 5 | 100 123 | Jan2 | 7 | 100 123 | Jan3 | 5 | 100 123 | Jan4 | 3 | 100 123 | Jan5 | 5 | 100 123 …

1
了解MS SQL Server日期类型
考虑以下: declare @dt datetime, @dt2 datetime2, @d date set @dt = '2013-01-01' set @dt2 = '2013-01-01' set @d = '2013-01-01' select convert(varbinary, @dt) as dt, convert(varbinary, @dt2) as dt2, convert(varbinary, @d) as d 输出: dt dt2 d ------------------ -------------------- -------- 0x0000A13900000000 0x07000000000094360B 0x94360B 现在,我已经从理解的文件是datetime有一个较小的范围,并开始从1753年1月1日,而datetime2与date使用0001-01-01作为他们的开始日期。 我不明白不过,是datetime似乎是小端,而datetime2和date是大端。如果是这样,它们怎么能正确分类? 考虑一下我是否想知道一个date类型代表多少整数天。您会认为您可以这样做: declare @d date set …

2
SQL Server是否具有Date_Format函数?
我发现的只是DateFormat我可以选择的预定义列表,像这样 我记得在MySQL(以及PostgeSQL?)中,您可以定义日期格式: DATE_FORMAT(now(),'&m_%Y') --for 02_2012 etc. SQL Server是否具有相同的功能?我看到人们必须编写一个函数来执行此类操作,它是否具有内置函数? 编辑: 我刚刚找到了DatePart功能。它可以以Month作为数字,但是即使我使用,也总是返回1位数 datePart(MM, getdate())
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.