如何将一串格式mmddyyyy转换datetime为SQL Server 2008?
我的目标栏是在 DateTime
我已尝试使用Convert和大多数Date样式值,但我收到一条错误消息:
'将varchar数据类型转换为日期时间数据类型会导致超出范围的值.
我有一个问题是将单列值拆分为多个列值.
例如:
Name
------------
abcd efgh
ijk lmn opq
asd j. asdjja
asb (asdfas) asd
asd
Run Code Online (Sandbox Code Playgroud)
我需要这样的输出:
first_name last_name
----------------------------------
abcd efgh
ijk opq
asd asdjja
asb asd
asd null
Run Code Online (Sandbox Code Playgroud)
中间名可以省略(不需要中间名)列已经创建,需要插入该Name列的数据.
SQL服务器错误媒体集有2个媒体系列,但只提供了1个.我试图将200 MB的数据库恢复到SQL 2008,我收到此错误
"媒体集有2个媒体系列,但只提供1个.必须提供所有成员

我有一个SQL Server的查询,我想在Mysql中运行.但我找不到任何替代uniqueidentifier关键字从SQL Server脚本到MYSQL脚本.
这是查询
CREATE TABLE foo(
myid uniqueidentifier NOT NULL,
barid uniqueidentifier NOT NULL
)
Run Code Online (Sandbox Code Playgroud)
对于上面相同的SQL Server脚本,Mysql中的查询是什么?
我在两个数据库之间设置了合并复制,并在两者上使用标识范围.
我想在发布者上向合并表添加特定行(将标识值设置为标识范围之外的内容).当我尝试这个时,我收到以下错误.
插入失败.它与数据库'xxx'中的标识范围检查约束冲突,复制表'dbo.yyy',列'yyy_id'.如果通过复制自动管理标识列,请按如下所示更新范围:对于Publisher,执行sp_adjustpublisheridentityrange; 对于订阅服务器,运行分发代理程序或合并代理程序.
有没有办法强制将特定标识值放入使用标识范围管理的合并复制表?
我试图让下面的代码工作,单独的两个代码(在WHEN部分和ELSE部分)工作,但在本CASE声明中使用时,我得到一个错误
"'CAST'附近的语法不正确,预计'AS'." 错误.
基本上,如果WHEN语句代码等于或大于24,则使用该THEN语句,如果它小于24,则使用该ELSE语句.
在尝试了几个小时之后我似乎无法让这个工作任何迹象表明我出错的地方将不胜感激.
SELECT CASE
WHEN
(convert(float,datediff(mi, start_work, end_work))/60) >= '24'
THEN
(convert(float,datediff(mi, start_work, end_work))/60)
ELSE
(CAST(convert(varchar(2), dateadd(minute, datediff(minute, start_time, end_time), 0), 114)
* 60 + RIGHT (convert(varchar(5), dateadd(minute, datediff(minute, start_time, end_time), 0), 114),
CASE WHEN CHARINDEX(':',convert(varchar(5), dateadd(minute, datediff(minute, start_time, end_time), 0), 114)) > 0
THEN LEN(convert(varchar(5), dateadd(minute, datediff(minute, start_time, end_time), 0), 114))-3
ELSE LEN(convert(varchar(5), dateadd(minute, datediff(minute, start_time, end_time), 0), 114))
END) AS decimal) / 60 …Run Code Online (Sandbox Code Playgroud) 我有一张桌子:
user_id | order_date
---------+------------
12 | 2014-03-23
12 | 2014-01-24
14 | 2014-01-26
16 | 2014-01-23
15 | 2014-03-21
20 | 2013-10-23
13 | 2014-01-25
16 | 2014-03-23
13 | 2014-01-25
14 | 2014-03-22
Run Code Online (Sandbox Code Playgroud)
活跃用户是指已登录过去12个月的用户.需要输出为
Period | count of Active user
----------------------------
Oct-2013 - 1
Jan-2014 - 5
Mar-2014 - 10
Run Code Online (Sandbox Code Playgroud)
2014年1月的价值 - 包括2014年10月的1个记录和2014年1月的4个非重复记录)
是否可以更改现有的非聚集索引以包含更多列作为Covered列的一部分.
例如
ALTER INDEX IX_NC_TableName_ColumnName
FOR TableName(ColumnName)
INCLUDE(Col1, Col2, Col3)
Run Code Online (Sandbox Code Playgroud)
想要包含Col4在上面的索引中.
添加此列会有什么影响?会有碎片还是其他什么?
我正在使用SQL Server 2008.我在查询中返回了这些数据,看起来非常类似于Day和ManualOrder所订购的...
ID Day ManualOrder Lat Lon
1 Mon 0 36.55 36.55
5 Mon 1 55.55 54.44
3 Mon 2 44.33 44.30
10 Mon 3 36.55 36.55
11 Mon 4 36.55 36.55
6 Mon 5 20.22 22.11
9 Mon 6 55.55 54.44
10 Mon 7 88.99 11.22
77 Sun 0 23.33 11.11
77 Sun 1 23.33 11.11
Run Code Online (Sandbox Code Playgroud)
我想要做的是按天订购这些数据,然后是ManualOrder ...但我想要一个行计数器(我们称之为MapPinNumber).问题是我希望这个行计数器在同一天遇到相同的Lat/Lon时再次重复.然后,如果它是不同的纬度/经度,它可以继续下一行的下一行计数器.我们必须在最终结果中维护Day,ManualOrder.
我将在地图上绘制这些数字,这个数字应代表我将以ManualOrder顺序绘制的引脚编号.该数据代表驾驶员的路线,并且他可以在他的日程表中白天多次去同一个纬度/经度.例如,他开车去沃尔玛,然后是CVS,然后又回到沃尔玛,然后再去沃尔格林.我需要的MapPinNumber列应该是1,2,1,3.由于他周一多次去沃尔玛,但这也是他开车的第一个地方,它总是在地图上的Pin#1.
这就是我需要的结果,我需要计算的MapPinNumber列.我已经尝试过ROW_NUMBER和RANK所能想到的一切,并且疯了!我试图避免使用丑陋的CURSOR.
ID Day ManualOrder Lat Lon MapPinNumber
1 Mon 0 36.55 36.55 1
5 Mon 1 55.55 54.44 2 …Run Code Online (Sandbox Code Playgroud) 我有关于TRY CATCH块的MSDN文档的问题.查看本文并向下滚动到示例C"使用TRY ... CATCH与XACT_STATE"
http://msdn.microsoft.com/en-us/library/ms175976.aspx
该示例首先COMMIT TRANSACTION在Try块中放置一个,然后在Catch块中放置第二个if XACT_STATE()=1.
但是我认为Catch块只会在发生错误时执行.那么Catch块如何执行并XACT_STATE返回1?这似乎是矛盾的.
XACT_STATE文档中有一条未回答的评论,询问同一个问题
sql-server ×8
sql ×6
t-sql ×3
mysql ×2
case ×1
dense-rank ×1
indexing ×1
msdn ×1
replication ×1
row-number ×1
string ×1
syntax ×1