我正在查看一些遗留的VB6代码(年代+岁,在我的时间之前),它运行针对SQL 2005 db的查询.它在WHERE子句中提供日期限制- 其中日期作为整数值给出,作为CLng()VB6中日期的结果.
例如
...
WHERE SomeDateField >= 40064
Run Code Online (Sandbox Code Playgroud)
40064就是VB6将今天的日期转换为(9月8日)的方法CLng().但是,在T-SQL中,这个整数实际上转换为9月10日:
SELECT CAST(40064 AS DATETIME)
Run Code Online (Sandbox Code Playgroud)
结果不如预期.
任何人都知道什么可能导致VB和T-SQL之间的转换差异?
我确信这总是没有问题,显然我的建议是以标准ISO格式将日期作为日期传递.但是,需要尝试找到这种差异背后的原因.
在表中有一个日期类型的字段.该字段的格式为mm/dd/yy.有没有办法将它转换为dd-Month name-yy?
最好的祝福,
我确实在sp上使用的表上创建了两个新索引.新结果表明,在有问题的连接部分,扫描转换为搜索.我认为寻求更好而不是扫描操作.另一方面,时间与没有新索引的时间大致相同.
很清楚,在将新版本sp投入生产之前,我怎么能得到满足.
例如,更改sp的参数可以帮助我查看新版本是否比旧版本更快或者还有什么?
关心bk
如果这是一个重复的问题,请道歉,但在执行Linq2Sql中的SQL语句与执行存储过程之间是否存在真正的区别?
有什么好处?(如果有的话)
我是SQL的新手,我正在尝试理解以下脚本.有人可以为我打破这个吗?
ErrorHandler:
IF @@ERROR <> 0
BEGIN
ROLLBACK TRANSACTION
RAISERROR('Error occurred in script to update version: transaction rolled back', 182, 4)
END
ELSE
COMMIT
Run Code Online (Sandbox Code Playgroud)
我对Java有所了解,所以我理解循环.这是我需要帮助的SQL语法.
谢谢你,雷
我有一个Riak Search节点正在运行,我正在尝试一些测试查询以获得对性能的感觉.
我正在通过搜索shell运行查询,结果被限制在第一个10000.我希望所有结果都回来,但找不到这个10000限制的来源?
嗨伙计们,我的小问题是这样的:我有这个列:PHONE_NR,TIME(时间字段),意思是主叫电话号码和通话时间.我需要分组电话和总和分钟.Filds看起来像这样:
nr time
726028xxx 00:07:07
735560css 00:07:37
726028xxx 00:07:55
Run Code Online (Sandbox Code Playgroud) 可以说我的数据库中只有2个表.这两个表是:InputType和HardwareType.每个表都使用GUID作为主键.从InputType到HardwareType有一个外键.
我遇到的问题是将有多行InputType引用HardwareType中的同一行(即,每种类型的硬件有几个输入).这个问题是我在InputType中引用的列中引用了HardwareType中的GUID将不允许重复 - 因此,每个硬件类型不允许多个输入.
我可以通过将InputType中的列的数据类型设置为"varchar"或其他东西而不是"uniqueidentifier"来解决这个问题,但我是否必须这样做?是否有一些允许重复的GUID条目,当它不是主键,而是另一个表的外键?
感谢帮助!谢谢.
foreign-keys primary-key uniqueidentifier duplicates sql-server-2008
我有一个存储过程,必须从多个表中检索数据
就像是
SELECT [AppointmentId]
,[ContactId]
,[Date]
,[BookedBy]
,[Details]
,[Status]
,[Time]
,[Type]
,[JobId]
,[AppointmentFor]
,(Select PersonFirstName from Person where Person_Id = [AppointmentFor]) As UserFirstName
,(Select PersonLastName from Person where Person_Id = [AppointmentFor]) As UserLastName
,(Select PersonFirstName from Person where Person_Id = [ContactId]) As ContactFirstName
,(Select PersonLastName from Person where Person_Id = [ContactId]) As ContactLastName
FROM [dbo].[Appointments]
Run Code Online (Sandbox Code Playgroud)
我的问题是还有其他更有效的方法吗?或者这是正确的方法吗?
我正在使用Sql server 2008谢谢
这是给出重复结果的查询:
SELECT a.applicant_particular_id, a.name, a.father_name, a.quota_id,
c.hafiz_quran_marks, b.form_status
FROM applicant_particular a,admission_choices b, academic_background c
WHERE b.applicant_particular_id=a.applicant_particular_id
AND c.applicant_particular_id=a.applicant_particular_id
AND a.quota_id='18'
AND b.form_status='RECEIVED'
Run Code Online (Sandbox Code Playgroud)
这是第一个表"applicant_particular"
这是第一个表"applicant_particular"
applicant_particular_id | name | father_name | quota_id
1 John Micheal 18
2 khan ali 19
Run Code Online (Sandbox Code Playgroud)
这是第二个表"admission_choices"
choice_id | form_status | applicant_particular_id | program_id
1 PENDING 2 19
2 RECEIVED 1 18
Run Code Online (Sandbox Code Playgroud)
这是第三个表"academic_background"
background_id | hafiz_marks | applicant_particular_id
1 20 2
2 30 1
Run Code Online (Sandbox Code Playgroud) sql ×6
sql-server ×6
t-sql ×3
.net ×1
database ×1
duplicates ×1
foreign-keys ×1
linq-to-sql ×1
mysql ×1
performance ×1
primary-key ×1
riak ×1
riak-search ×1
sum ×1
time ×1
vb6 ×1