初学者必读:精讲SQL中的时间计算语句_MySQL
问:请问,如何计算一个表中的周起始和截止日期并写到表字段中? 我要从一个表向另一个表导入数据,并进行转换,用的是VB 。
我现在有有一个表 主要字段有
time_id int
time_date datetime
year int
week_of_year int
day nvarhar
想要转换成另外一张表
time_id int
time_date datetime
year int
week_of_year nvarchar
原来的表内容是
--------------------
1 2003-07-09 2003 20 星期日
1 2003-07-10 2003 20 星期一
1 2003-07-11 2003 20 星期二
想要变成
--------------------
1 07/09/2003 2003 第20周(7/9-7/17)
1 07/10/2003 2003 第20周(7/9-7/17)
1 07/11/2003 2003 第20周(7/9-7/17)
请问:这个语句应该怎么去写?
答:
if object_id('tablename') is not null drop table tablename
select 1 as time_id, '2003-07-09' as time_date, 2003 as [year], 20 as week_of_year, '星期日' as [day]
into tablename
union select 1, '2003-07-10', 2003, 20, '星期一'
union select 1, '2003-07-11', 2003, 20, '星期二'
------------------------------------------------
select time_id, time_date, [year], '第' + cast(week_of_year as varchar(2)) + '周('
+ cast(month(week_begin) as varchar(2)) + '/' + cast(day(week_begin) as varchar(2)) + '-'
+ cast(month(week_end) as varchar(2)) + '/' + cast(day(week_end) as varchar(2)) as week_of_year
from (select *, dateadd(day, 1 - datepart(weekday, time_date), time_date) as week_begin,
dateadd(day, 7 - datepart(weekday, time_date), time_date) as week_end from tablename) a
/*
time_id time_date year week_of_year
1 2003-07-09 2003 第20周(7/6-7/12)
1 2003-07-10 2003 第20周(7/6-7/12)
1 2003-07-11 2003 第20周(7/6-7/12)
*/
------------------------------------------------
drop table tablename
问题虽然解决了,但这个例子并不具备通用性,还是个案,所以我们分析了你的代码,发现一个问题:日期范围是如何确定的?所以,我们把它延伸发散到:能否自主设定日期的范围呢?比如设定到星期一或星期天开始:
思路:
SET DATEFIRST
将一周的第一天设置为从 1 到 7 之间的一个数字。
语法
SET DATEFIRST { number | @number_var }
参数
number | @number_var
是一个整数,表示一周的第一天,可以是下列值中的一个。

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

從初學者到專家:五個必備的C語言編譯器推薦隨著電腦科學的發展,越來越多的人對程式語言充滿了興趣。而C語言作為一門廣泛應用於系統層級程式設計的高階語言,一直受到了程式設計師們的喜愛。為了寫出高效率、穩定的程式碼,選擇一款適合自己的C語言編譯器是很重要的。本文將介紹五個必備的C語言編譯器,供初學者和專家們參考選擇。 GCCGCC,即GNU編譯器集合,是最常用的C語言編譯器之一

現在我們已經了解了WooCommerce產品及其相關設置,接下來讓我們了解一下WooCommerce的稅務配置選項。稅收設定作為線上商店所有者,您永遠不會想搞亂稅務規則和問題。 WooCommerce在這方面為您提供幫助,提供多種選項來解決所有稅務設置,這些設置可能會因您所在的國家/地區和個別商店的要求而異。可以在以下位置找到這些選項:WooCommerce->設定->稅。進入稅務設定標籤後,您將看到一個主要的稅務設定部分以及三種不同的稅級。這些是:稅務選項標準費率降低利率零利率稅收

C++和Python,哪個比較適合初學者?在這個資訊化浪潮席捲全球的時代,程式設計能力已成為一項必備技能。而在學習程式設計的過程中,選擇適當的程式語言顯得格外重要。在眾多程式語言中,C++和Python都是備受初學者關注的兩大熱門選擇。那麼,C++和Python到底哪個比較適合初學者呢?以下將從各方面對比兩者的優劣,以及為什麼選擇某種語言更有助於初學者的程式設計入門

初學者指南:如何用Pandas讀取HTML表格資料引言:在資料處理與分析中,Pandas是一個強大的Python函式庫。它提供了靈活的資料結構和資料分析工具,使得資料處理變得更加簡單有效率。 Pandas不僅可以處理CSV、Excel等格式的數據,還可以直接讀取HTML表格數據。本文將介紹如何使用Pandas函式庫讀取HTML表格資料的方法,提供具體的程式碼範例,幫助初學

Linux初學者必讀:輕鬆學會解壓縮gz格式文件在Linux系統中,經常會遇到各種不同格式的壓縮文件,其中.gz格式是較為常見的一種。本文將簡要介紹如何在Linux系統中解壓縮.gz格式文件,幫助初學者快速上手。首先,在Linux系統中,解壓縮.gz格式檔案通常使用命令列工具完成。最常用的指令是gzip,以下將介紹幾種常見的解壓縮.gz檔的方法,包括具體的程式碼範例

對於初學者而言,選擇合適的Django版本是一個重要且必須面對的問題。 Django作為一個高效的Web框架擁有大量的使用者和開發者,因此它也擁有多個版本以滿足不同產品和應用的需求。但是,如何根據專案需求選擇合適的Django版本呢?下面我們將透過一些實例來幫助大家選擇適合自己的版本。確認所用資料庫Django支援多個資料庫,包括MySQL,Postgre

標題:程式設計初學者應該優先學習C語言還是C++?在程式設計領域,C語言和C++是兩種非常重要的程式語言,它們都有自己獨特的特色和優勢。對於初學者來說,選擇學習哪種語言可能會有一些困惑。本文將就這個問題展開討論,以及給出一些具體的程式碼範例來幫助初學者更了解兩種語言的差異。首先,讓我們來看看C語言。 C語言是一種功能強大且廣泛應用的程式語言,它是從彙編語言發

初學者必備:掌握Python中lambda函數的基本使用方法,需要具體程式碼範例概述:Python是一種簡單易學的程式語言,它以其簡潔、靈活的語法吸引了眾多程式設計師的喜愛。在Python中,lambda函數是一種特殊的匿名函數,它可以在需要函數的地方直接定義,並且無需給它一個名字。本文將介紹lambda函數的基本使用方法,並提供具體的程式碼範例,以幫助初學者更好地
