我想从日期列等于特定日期的表中选择,我以格式'yyyy-mm-dd'的形式发送字符串.我需要转换该字符串,而不是比较我在表中是否有该日期.
现在我这样做:
select *
FROM table
where CONVERT(char(10), date_column,126) = convert(char(10), '2016-10-28', 126)
Run Code Online (Sandbox Code Playgroud)
date_column是表中的日期类型,我需要以这种格式'yyyy-mm-dd'从表中获取它,因为我使用126格式.我只是不确定其他部分我在哪里转换已经采用该格式的字符串并且我需要转换它因为我不知道使用它是否合适:
CONVERT(varchar(10), date_column,126) = '2016-10-28'
Run Code Online (Sandbox Code Playgroud) 我正在使用SQL Server 2012.我需要删除比去年更大的数据.
到目前为止,例如,删除任何记录超过28/11 /更大的2015年.
虽然它正在滚动,但它将成为每天运行的SP的一部分,因此每天都会检查当前日期并删除.做这个的最好方式是什么?
DELETE tblmytable
where MyDateField > GETDATE ()
Run Code Online (Sandbox Code Playgroud)
我如何改变说>去年的今天?
我使用的是SQL Server 2012.我有一个包含90列的表.我试图只选择包含数据的列.搜索后,我使用以下程序:
1-使用一个选择查询获取所有列数
2-将结果表旋转到Temp表中
3-创建选择查询
4-执行此查询
这是我使用的查询:
DECLARE @strTablename varchar(100) = 'dbo.MyTable'
DECLARE @strQuery varchar(max) = ''
DECLARE @strSecondQuery varchar(max) = 'SELECT '
DECLARE @strUnPivot as varchar(max) = ' UNPIVOT ([Count] for [Column] IN ('
CREATE TABLE ##tblTemp([Column] varchar(50), [Count] Int)
SELECT @strQuery = ISNULL(@strQuery,'') + 'Count([' + name + ']) as [' + name + '] ,' from sys.columns where object_id = object_id(@strTablename) and is_nullable = 1
SELECT @strUnPivot = ISNULL(@strUnPivot,'') + '[' + name + '] ,' …Run Code Online (Sandbox Code Playgroud) 下面是简单的SQL查询,用于在条件中选择记录.
--like this I have 6000 usernames
select * from tblUsers where Username in ('abc ','xyz ',' pqr ',' mnop ' );
Run Code Online (Sandbox Code Playgroud)
我知道在sql中有LTrim&Rtrimleft分别从左和右删除前导尾随空格.
我想从我提供给选择查询的所有用户名中删除左右空格.
注意: -
我想修剪我在in子句中传递的值.(我不想将LTrim和RTrim传递给每个传递的值).
记录中没有尾随空格,但是我在子句中传递的值是从excel复制然后粘贴到Visual Studio中的.然后使用ALT键我在字符串的左侧和右侧放置'(单引号).由于这个原因,一些字符串在右侧尾部有空格.
如何
trim在select查询中使用该函数?
我正在使用MS SQL Server 2012
鉴于以下字符串
Declare @string varchar(max)='abc ___________ deffns ___ cg _ hif _______hh ihs';
Run Code Online (Sandbox Code Playgroud)
这是所需的输出 :(不管长度如何,每次炒作都应该用姓氏替换)
abc lastname deffns lastname cg lastname hif lastname hh ihs
Run Code Online (Sandbox Code Playgroud)
这里的问题是,可以有很多Hypens可变长度(最大长度可以<20)......
我尝试了很多方法并采用以下方法解决..
select
REPLACE(REPLACE(replace(stringcol,replicate('_',20),'LASTNAME'),
replicate('_',19),'LASTNAME'),
replicate('_',18),'LASTNAME')
from table
Run Code Online (Sandbox Code Playgroud)
有没有办法有效地完成这一点.任何建议都会受到欢迎
我是SQL的新手,有人可以帮我理解为什么我们在sql server中使用Select.*?为什么它与select*from table name不同在某些情况下,我们使用select.*,firstname,lastname from employee等语句.只是有点困惑.
假设我有这样的视图
CREATE VIEW MyView
AS
SELECT Id, Name FROM Source1
UNION
SELECT Id, Name FROM Source2
Run Code Online (Sandbox Code Playgroud)
然后我查询视图
SELECT Id, Name From MyView WHERE Name = 'Sally'
Run Code Online (Sandbox Code Playgroud)
SQL Server内部将首先从Source1和Source2中选择所有数据,然后应用where或将它放在每个Select语句的位置?
在我的项目中,我需要在同一个表中找到基于旧版和新版的差异任务.
id | task | latest_Rev
1 A N
1 B N
2 C Y
2 A Y
2 B Y
Run Code Online (Sandbox Code Playgroud)
预期结果:
id | task | latest_Rev
2 C Y
Run Code Online (Sandbox Code Playgroud)
所以我尝试了以下查询
Select new.*
from Rev_tmp nw with (nolock)
left outer
join rev_tmp old with (nolock)
on nw.id -1 = old.id
and nw.task = old.task
and nw.latest_rev = 'y'
where old.task is null
Run Code Online (Sandbox Code Playgroud)
当我的表有超过20k的记录时,这个查询会花费更多的时间吗?如何减少时间?
在我的公司不允许使用子查询
在这样的SELECT声明......
SELECT DISTINCT NULL[Column1], NULL[Column2], Column2, etc...
FROM Table
Run Code Online (Sandbox Code Playgroud)
在列名之前,NULL语句究竟在做什么?这很好.
Try
conn = New SqlConnection(strcon)
conn.Open()
Dim str As String = "select * from MYTABLE where Year >='#" & Txtfromyear_reprt.Text & "#' and Year <='#" & Txttoyear_reprt.Text & "#'"
da = New SqlDataAdapter(str, conn)
Dim ds As New DataSet
da.Fill(ds, "MYTABLE")
DgvReport.DataSource = ds.Tables("MYTABLE")
da.Dispose()
conn.Close()
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
Run Code Online (Sandbox Code Playgroud)
我正在处理我的学校项目,但我遇到了一个无法解决的问题.我在搜索按钮中编写了此代码,但是当我在运行时单击它时,我的数据网格中没有显示任何数据.
我想要的是当我点击它时我想使用两个文本框将所有数据从mytable显示到Datagrid视图.我有两个文本框,txtfromyear以及一个数据类型txttoyear的数据库列.Yearnvarchar(50)
请帮帮我,谢谢你.