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都帮我解决了我的问题。现在我不知道该接受哪个答案。请帮助我选择哪一个。你们两个都做得很好。我想你是先回答的,所以你的答案。谢谢你,伙计。