初学者必读:精讲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语言编译器之一

C++和Python,哪个更适合初学者?在这个信息化浪潮席卷全球的时代,编程能力已经成为一项必备技能。而在学习编程的过程中,选择一门合适的编程语言显得尤为重要。在众多编程语言中,C++和Python都是备受初学者关注的两大热门选择。那么,C++和Python到底哪个更适合初学者呢?以下将从各方面对比两者的优劣,以及为什么选择某一种语言更有助于初学者的编程入门

现在我们已经了解了WooCommerce产品及其相关设置,接下来让我们了解一下WooCommerce的税务配置选项。税收设置作为在线商店所有者,您永远不会想搞乱税务规则和问题。WooCommerce在这方面为您提供帮助,提供多种选项来解决所有税务设置,这些设置可能会因您所在的国家/地区和个别商店的要求而异。可以在以下位置找到这些选项:WooCommerce->设置->税。进入税务设置选项卡后,您将看到一个主要的税收设置部分以及三种不同的税级。这些是:税务选项标准费率降低利率零利率税收

初学者指南:如何用Pandas读取HTML表格数据引言:在数据处理和分析中,Pandas是一个强大的Python库。它提供了灵活的数据结构和数据分析工具,使得数据处理变得更加简单高效。Pandas不仅可以处理CSV、Excel等格式的数据,还可以直接读取HTML表格数据。本文将介绍如何使用Pandas库读取HTML表格数据的方法,提供具体的代码示例,帮助初学

对于初学者而言,选择合适的Django版本是一个重要而且必须要面对的问题。Django作为一个高效的Web框架拥有大量的用户和开发者,因此它也拥有多个版本以满足不同产品和应用的需求。但是,如何根据项目需求选择合适的Django版本呢?下面我们将通过一些实例来帮助大家选择适合自己的版本。确认所用数据库Django支持多个数据库,包括MySQL,Postgre

Linux初学者必读:轻松学会解压gz格式文件在Linux系统中,经常会遇到各种不同格式的压缩文件,其中.gz格式是较为常见的一种。本文将简要介绍如何在Linux系统中解压.gz格式文件,帮助初学者快速上手。首先,在Linux系统中,解压.gz格式文件通常使用命令行工具完成。最常用的命令是gzip,下面将介绍几种常见的解压.gz文件的方法,包括具体的代码示例

初学者必备:掌握Python中lambda函数的基本使用方法,需要具体代码示例概述:Python是一种简单易学的编程语言,它以其简洁、灵活的语法吸引了众多程序员的喜爱。在Python中,lambda函数是一种特殊的匿名函数,它可以在需要函数的地方直接定义,并且无需给它一个名字。本文将介绍lambda函数的基本使用方法,并提供具体的代码示例,以帮助初学者更好地

标题:编程初学者应该优先学习C语言还是C++?在编程领域,C语言和C++是两种非常重要的编程语言,它们都有自己独特的特点和优势。对于初学者来说,选择学习哪种语言可能会有一些困惑。本文将就这个问题展开讨论,以及给出一些具体的代码示例来帮助初学者更好地了解两种语言的不同之处。首先,让我们来看一下C语言。C语言是一种功能强大且广泛应用的编程语言,它是从汇编语言发
