Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 转换字符串";年月日;sql查询中的最新版本_Sql Server_Date - Fatal编程技术网

Sql server 转换字符串";年月日;sql查询中的最新版本

Sql server 转换字符串";年月日;sql查询中的最新版本,sql-server,date,Sql Server,Date,我有一个带有salaryMonth字段的表,其中包含月份和年份[“04/2017”]作为字符串。我想在我使用了以下查询的特定时间跨度之间获取数据,但这些查询失败,并且给我错误,无法从字符串转换日期或时间 从viewSalary中选择salaryMonth,其中(转换(日期,'1/'+salaryMonth)>'2/22/2017') 也 从viewSalary中选择salaryMonth,其中(转换(日期,'1/'+salaryMonth)>=转换(日期,'2/22/2017')) 我也交换了月

我有一个带有
salaryMonth
字段的表,其中包含月份和年份[“04/2017”]作为字符串。我想在我使用了以下查询的特定时间跨度之间获取数据,但这些查询失败,并且给我错误,无法从字符串转换日期或时间

从viewSalary中选择salaryMonth,其中(转换(日期,'1/'+salaryMonth)>'2/22/2017')

从viewSalary中选择salaryMonth,其中(转换(日期,'1/'+salaryMonth)>=转换(日期,'2/22/2017'))

我也交换了月和日部分,但仍然没有运气。

试试这个:

SELECT salaryMonth 
FROM viewSalary 
WHERE (CONVERT(date, '01/' + salaryMonth, 103) >= CONVERT(date, '02/22/2017', 103)
试试这个:

SELECT salaryMonth 
FROM viewSalary 
WHERE (CONVERT(date, '01/' + salaryMonth, 103) >= CONVERT(date, '02/22/2017', 103)

我想你可以这样做:

SELECT salaryMonth FROM viewSalary 
WHERE CAST('01/'+salaryMonth AS date) > CAST('2/22/2017' AS DATE)

我想你可以这样做:

SELECT salaryMonth FROM viewSalary 
WHERE CAST('01/'+salaryMonth AS date) > CAST('2/22/2017' AS DATE)

这是将值转换为有效SQL日期所需的基本SQL,格式为:
YYYY-MM-DD

DECLARE @datestring AS NVARCHAR(10) = '04/2017';

SELECT  CAST(RIGHT(@datestring, 4) + '-' + 
             LEFT(@datestring, 2) + '-01' AS DATE) AS DateVal;
-- produces: 2017-04-01
添加到SQL中:

SELECT salaryMonth 
FROM viewSalary 
WHERE CAST(RIGHT(salaryMonth , 4) + '-' + 
             LEFT(salaryMonth , 2) + '-01' AS DATE) > '2017-02-22'

这是将值转换为有效SQL日期所需的基本SQL,格式为:
YYYY-MM-DD

DECLARE @datestring AS NVARCHAR(10) = '04/2017';

SELECT  CAST(RIGHT(@datestring, 4) + '-' + 
             LEFT(@datestring, 2) + '-01' AS DATE) AS DateVal;
-- produces: 2017-04-01
添加到SQL中:

SELECT salaryMonth 
FROM viewSalary 
WHERE CAST(RIGHT(salaryMonth , 4) + '-' + 
             LEFT(salaryMonth , 2) + '-01' AS DATE) > '2017-02-22'

根据@ATC的回答,TSQL允许您在转换为日期时间时指定样式。这是convert语句中最后一个参数中的101

CONVERT(date, '01/' + salaryMonth, 101)
有关可用格式的完整列表,请参阅

在您的情况下,对于dd/MM/yyyy,我相信代码是103

CONVERT(date, '01/' + salaryMonth, 103)

根据@ATC的回答,TSQL允许您在转换为日期时间时指定样式。这是convert语句中最后一个参数中的101

CONVERT(date, '01/' + salaryMonth, 101)
有关可用格式的完整列表,请参阅

在您的情况下,对于dd/MM/yyyy,我相信代码是103

CONVERT(date, '01/' + salaryMonth, 103)

在sql server 2012+中,您可以这样使用

SELECT salaryMonth 
FROM viewSalary 
WHERE datefromparts(RIGHT(salaryMonth,4), LEFT(salaryMonth,2),1) >= Datefromparts(2017,2,22)

在sql server 2012+中,您可以这样使用

SELECT salaryMonth 
FROM viewSalary 
WHERE datefromparts(RIGHT(salaryMonth,4), LEFT(salaryMonth,2),1) >= Datefromparts(2017,2,22)

是mysql还是sql server?。。它不能同时是MySQL或(MS)SQL Server?对不起,它是SQL Server您的SQL Server版本是什么?@TriV SQL Server 2012。在VS 2013中创建DatasetIs的是mysql或sql server?。。它不能同时是MySQL或(MS)SQL Server?对不起,它是SQL Server您的SQL Server版本是什么?@TriV SQL Server 2012。在VS 2013中工作,在现场创建Dataseti,月+年。我把这几天和它联系在一起。。请告诉我如何将格式转换为dd/MM/yyyy而不是MM/dd/yyyy。我在字段中有月+年。我把这几天和它联系在一起。。请告诉我如何将格式转换为dd/MM/yyyy而不是MM/dd/yyyy这是用于
dd/MM/yyyy
。样式参数
101
表示美式日期-dd/MM/yyyy…没问题。你和@HenryLu都帮我解决了我的问题。现在我不知道该接受哪个答案。请帮助我选择哪一个。你们两个都做得很好。我想你是先回答的,所以你的答案。谢谢,伙计。这是给
dd/MM/yyyy
。样式参数
101
表示美式日期-dd/MM/yyyy…没问题。你和@HenryLu都帮我解决了我的问题。现在我不知道该接受哪个答案。请帮助我选择哪一个。你们两个都做得很好。我想你是先回答的,所以你的答案。谢谢你,伙计。