我需要一个脚本中的功能,使我能够在表格中插入日期。
我需要什么SQL来插入格式的日期
01/08/2010 00:00:00
其中日期是当月的第一天。我需要更改订单才能指定月份值?感谢
答案 0 :(得分:77)
最好和最简单的方法是使用:
SELECT DATEADD(m, DATEDIFF(m, 0, GETDATE()), 0)
只需用您需要的日期替换GETDATE()。
答案 1 :(得分:8)
接受的答案有效,可能更快,但SQL 2012及更高版本的方法更容易理解:
SELECT cast(format(GETDATE(), 'yyyy-MM-01') as Date)
答案 2 :(得分:3)
select cast(cast(datepart(year,getdate()) as char(4))
+ '/'
+ cast(datepart(month,getdate()) as char(2))
+ '/01' as datetime)
答案 3 :(得分:2)
这是一种非常简单的方法(使用SQL 2012或更高版本)
datefromparts(year(getdate()),month(getdate()),1)
您还可以使用
轻松获取当月的最后一天eomonth(getdate())
答案 4 :(得分:1)
SELECT DATEADD(day,1-DATEpart(day,GETDATE()),GETDATE())
答案 5 :(得分:0)
我认为通常将字符串转换为MM / DD / YY HH:mm:ss,您需要使用08/01/2010 00:00:00
很抱歉,误解了这个问题,看看你是否可以改变字符串的顺序。
这可能是你想要的:
declare @test as date
select @test = CONVERT(date, '01/08/2010 00:00:00', 103)
select convert(varchar(15), @test, 106)
答案 6 :(得分:0)
从此link修改。这将以字符串形式返回,但您可以根据需要进行修改以返回日期时间数据类型。
SELECT CONVERT(VARCHAR(25),DATEADD(dd,-(DAY(GetDate())-1),GetDate()),101)
答案 7 :(得分:0)
SELECT CAST(FLOOR(CAST(DATEADD(d, 1 - DAY(GETDATE()), GETDATE()) AS FLOAT)) AS DATETIME)
答案 8 :(得分:0)
SELECT DATEADD(m, DATEDIFF(m, 0, GETDATE()), 0)
这完美无缺。我实际上添加了一个Case语句。谢谢你的帖子:
SELECT Case(DATEADD(m, DATEDIFF(m, 0, GETDATE()), 0) as Date)
答案 9 :(得分:-1)
从dual中选择last_day(add_months(sysdate,-1))+ 1;
答案 10 :(得分:-1)
从SQL Server 2012开始,您可以使用eomonth
built-in function,该版本用于获取月末,但也可以用于开始:
select dateadd(day, 1, eomonth(<date>, -1))
如果您需要datetime
等结果,只需cast
:
select cast(dateadd(day, 1, eomonth(<date>, -1)) as datetime)
答案 11 :(得分:-1)
获取上个月的第一天
Select ADDDATE(LAST_DAY(ADDDATE(now(), INTERVAL -2 MONTH)), INTERVAL 1 DAY);
获取上个月的最后一天
Select LAST_DAY(ADDDATE(now(), INTERVAL -1 MONTH));
答案 12 :(得分:-2)
...在Powershell中你可以这样做:
获取日期(获取日期((获取日期)) - 格式MM.yyyy)
...上个月这样做:
获取日期(获取日期((获取日期).AddMonths(-1)) - 格式MM.yyyy)
...或自定义日期执行此操作:
获取日期(获取日期((Get-Date 12.01.2013)) - 格式MM.yyyy)
我m sure there
这样的事情可能......
格鲁斯
答案 13 :(得分:-2)
非常简单的代码片段
$ date - extract(从$ date开始的日期)+ 1
两种方法:
my_date - extract(来自my_date的日期)+ 1
'2014/01/21' - 摘录(日期自'2014/01/21')+ 1